我想将大约20个国家/地区名称保存到一个字符串中,然后将它们复制到另一个字符串中,但它总是让我犯了一些错误,有人可以帮我吗?
这是我的代码:
char array1[30][30], array2[30][30];
这是我把它们放入第一个数组的方式:
fscanf(fr, "%s", array1[i]);
这一切都有效但我想做的时候:
array2[0] = array1[0];
我收到错误:
incompatible types when assigning to type 'char[30]' from type 'char *'
当我使用时:
strcpy(array2[pom2], array1[i]);
它没有显示错误,但不复制或打印出来。
答案 0 :(得分:1)
对于第一个错误:您无法将数组复制到另一个数组中。您可以只复制撒拉值(在您的情况下为chars)。
如果你想将一个字符串复制到另一个字符串,你确实必须使用strcpy
函数(或一个近亲,strncpy
。你应该给我们完整的代码,以便我们可以看到问题出在strcpy
的调用上。
答案 1 :(得分:1)
你尝试过逐个字符吗?
for( i = 0; i < 30; i++ ){
for( j = 0; j < 30; j++ ){
targetArray[ i ][ j ] = sourceArray[ i ][ j ];
/* End of the string, stop copying */
if ( sourceArray[ i ][ j ] == '\0' ){
break;
}
}
}