从 C 中的数组中的一组元素创建一个字符串
Creating a string from a set of elements from an array in C
有没有办法从现有数组中的一组元素创建一个字符串?
示例:假设我有一个包含四个字符的数组
#include <cs50.h>
#include <stdio.h>
#include <string.h>
int main (void)
{
char abcd[] = "abcd";
string sabcd = "0";
}
有什么方法可以用数组元素的子集创建字符串,例如 "ac"、"cd" 等等?
已编辑:添加了库以进行说明。
您可以像这样遍历数组元素:
char abcd[] = "abcd";
for(int i=0; i<4; i++){
for(int j=i; j<4; j++){
d = abcd[i] + abcd[j];
}
您始终可以索引您希望子字符串具有的字符。
例如:
char adb[4] = {abcd[0], abcd[3], abcd[1], '[=10=]'};
另一种方法是使用 strncpy()
,像这样:
#include <stdio.h>
#include <string.h>
int main (void)
{
char abcd[] = "abcd";
char bc[3] = "";
strncpy(bc, abcd + 1, 2);
puts(bc);
}
输出:
bc
有没有办法从现有数组中的一组元素创建一个字符串?
示例:假设我有一个包含四个字符的数组
#include <cs50.h>
#include <stdio.h>
#include <string.h>
int main (void)
{
char abcd[] = "abcd";
string sabcd = "0";
}
有什么方法可以用数组元素的子集创建字符串,例如 "ac"、"cd" 等等?
已编辑:添加了库以进行说明。
您可以像这样遍历数组元素:
char abcd[] = "abcd";
for(int i=0; i<4; i++){
for(int j=i; j<4; j++){
d = abcd[i] + abcd[j];
}
您始终可以索引您希望子字符串具有的字符。
例如:
char adb[4] = {abcd[0], abcd[3], abcd[1], '[=10=]'};
另一种方法是使用 strncpy()
,像这样:
#include <stdio.h>
#include <string.h>
int main (void)
{
char abcd[] = "abcd";
char bc[3] = "";
strncpy(bc, abcd + 1, 2);
puts(bc);
}
输出:
bc