【发布时间】:2021-11-15 20:26:30
【问题描述】:
您好,我有一个不同名称的数组,我需要将他们的姓氏放入不同的数组中
#include <stdio.h>
#include <string.h>
char ame[100][100] = {"Charles Thompson","Andy Hardy","Christopher de Charls-morson"};
char surname[100][100];
int main(void) {
for(int i=0;i<4;i++){
char *last = strrchr(name[i], ' ');
if (last != NULL) {
printf("Last token: '%s'\n", last+1);
surname[i]=(last+1); // <----problem part
}
}
}
如果我注释掉 surname[i] 行,代码可以工作并打印出他们的姓氏,我只是无法将其添加到数组中
想要的输出:
for(int k=0;k<4;k++){
printf(surname[k]); // <--just to test print
}
会导致
Thompson <- surname[0] position
Hardy <- surname[1] position
Charls-morson <- surname[2] position
基于分配,我应该根据空格将它分开,带 - 的姓可以,也需要作为字符串,因为稍后我需要创建一个函数,我将输入的姓氏与数组进行比较并找到它的位置
【问题讨论】:
-
surname[i]是一个数组。您不能分配给数组,只能复制到它。要复制字符串,请使用strcpy。 -
我输入了 strcpy(surname[i],(last+1)) 非常感谢