Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将字符串数组的元素连接到字符串数组? #包括 #包括 int main(){ 字符a[7]=“汽车”; 字符b[7]=“yyoug”; strcat(a,b[2]); 第(a)款; 返回0; }_C_Arrays_String - Fatal编程技术网

如何将字符串数组的元素连接到字符串数组? #包括 #包括 int main(){ 字符a[7]=“汽车”; 字符b[7]=“yyoug”; strcat(a,b[2]); 第(a)款; 返回0; }

如何将字符串数组的元素连接到字符串数组? #包括 #包括 int main(){ 字符a[7]=“汽车”; 字符b[7]=“yyoug”; strcat(a,b[2]); 第(a)款; 返回0; },c,arrays,string,C,Arrays,String,这不会编译。它说“传递'strcat'的参数2使指针从整数变为不带强制转换的指针。”我还没有学过指针的用法。b[2]是char类型,但是strcat希望它的两个参数都是char*类型。 改用strncat。如果传递的第三个参数是1 #include <stdio.h> #include <string.h> int main(){ char a[7]= "car"; char b[7]="yyoug"; strcat(a,b[2]); puts(a); return

这不会编译。它说“传递'strcat'的参数2使指针从整数变为不带强制转换的指针。”我还没有学过指针的用法。

b[2]
char
类型,但是
strcat
希望它的两个参数都是
char*
类型。
改用strncat。如果传递的第三个参数是
1

#include <stdio.h>
#include <string.h>
int main(){
char a[7]= "car";
char b[7]="yyoug";
strcat(a,b[2]);
puts(a);
  return 0;
}

b[2]
char
类型,但
strcat
要求其两个参数均为
char*
类型。
改用strncat。如果传递的第三个参数是
1

#include <stdio.h>
#include <string.h>
int main(){
char a[7]= "car";
char b[7]="yyoug";
strcat(a,b[2]);
puts(a);
  return 0;
}

如果您只是想学习如何使用strncat,那么@hacks示例是非常完美的。但如果您只想将字符连接到
a
,您也可以使用

a[3]=b[2]


但请记住,这两种解决方案都只适用于目标阵列(在您的情况下,
a
足够大的情况。

如果您只是想使用
strncat
,因为您想了解它是如何工作的,那么@hacks示例就非常完美了。但如果您只想将字符连接到
a
,您也可以使用

a[3]=b[2]


但请记住,这两种解决方案都只在目标阵列(在您的情况下,
a
足够大)的情况下有效。

如果不使用malloc,这可能有助于解释发生了什么

strncat(a, &b[2], 1);
#包括
#包括
#包括
int main(){
//位置01 2 3
//“汽车”=['c'、'a'、'r'、'\0']
字符a[7]=“汽车”;
字符b[7]=“yyoug”;
//斯特伦(“汽车”)==3;
//“汽车”[3]==['\0'];
a[strlen(a)]=b[2];
断言(a[3]=“o”);
a[strlen(a)+1]='\0';
断言(a[4]='\0');
第(a)款;
返回0;
}

如果不使用malloc,这可能有助于解释发生了什么

strncat(a, &b[2], 1);
#包括
#包括
#包括
int main(){
//位置01 2 3
//“汽车”=['c'、'a'、'r'、'\0']
字符a[7]=“汽车”;
字符b[7]=“yyoug”;
//斯特伦(“汽车”)==3;
//“汽车”[3]==['\0'];
a[strlen(a)]=b[2];
断言(a[3]=“o”);
a[strlen(a)+1]='\0';
断言(a[4]='\0');
第(a)款;
返回0;
}

b[2]
给出数组中第三个元素的值<代码>&b[2]
提供地址。。这是strcat()的预期输出。
您希望获得的预期输出是什么?谢谢!但是现在它会在单词“car”后面加上“oug”,我只需要字母“o'Use
strcat(a,&b[2])
strcat(a、b+2)
如果只想添加一个字符,可以使用
strncat(a,&b[2],1)
b[2]
给出数组中第三个元素的值<代码>&b[2]
提供地址。。这是strcat()的预期输出。您希望获得的预期输出是什么?谢谢!但是现在它会在单词“car”后面加上“oug”,我只需要字母“o'Use
strcat(a,&b[2])
strcat(a、b+2)
如果只想添加一个字符,可以使用
strncat(a,&b[2],1)