【发布时间】:2016-04-06 21:17:16
【问题描述】:
首先,这是一个测试程序,我想测试一些特定的东西,我想看看它是否有效。假设我想将 x 分配给 arr[0][4] 并希望保留此更改,以便 arr[0][4] 在主函数中也是 x:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void changE(char *arr[10][5]);
int main(void){
char *arr[10][5];
arr[0][0] = "Johny";
arr[0][1] = "Tony";
arr[0][2] = "Tiki";
arr[0][3] = "Kitty";
arr[0][4] = "Douglas";
arr[1][0] = "Piki";
arr[1][1] = "Kati";
arr[1][2] = "Sathi";
arr[1][3] = "Dony";
changE(arr);
int i = 0;
int j;
for(i;i<=1;i++){
for(j=0;j<=4;j++){
printf("%s\n", arr[i][j]);
}
printf("\n\n\n");
}
return 0;
}
void changE(char *arr[10][5]){
char x[50] = "Tinky";
arr[0][4] = x;
}
问题是我不能将 x 分配给 arr[0][4],程序就关闭了。我也试过strcpy,这个:
void changE(char *arr[10][5]){
char x[50] = "Tinky";
strcpy(arr[0][4], x);
}
与 strcpy 相同,程序只是关闭。 我只能这样做:
void changE(char *arr[10][5]){
arr[0][4] = "Tinky";
}
考虑到 x 是一个我不知道的字符串(或来自 scanf 的字符串),这对我没有任何帮助。 因此,如果 x 来自 scanf,我如何将 x 分配给 arr[0][4]?任何帮助,将不胜感激!谢谢:)
【问题讨论】:
-
C 没有
string类型。char的序列是否是“字符串”只是所使用函数的约定。请阅读 C 中的指针和数组。 -
这一行:
for(i;i<=1;i++){存在逻辑错误。你的编译器应该告诉你这个问题。建议:for(i=0; i<=1; i++){或for(; i<=1; i++){
标签: c arrays string char variable-assignment