【问题标题】:Addint last token into 2D array将最后一个标记添加到二维数组中
【发布时间】: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)) 非常感谢

标签: arrays c token


【解决方案1】:

我换了:

surname[i]=(last+1);

与:

strcpy(surname[i],(last+1))

它成功了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-23
    • 1970-01-01
    • 2018-07-22
    • 1970-01-01
    • 1970-01-01
    • 2012-01-01
    • 1970-01-01
    • 2017-12-06
    相关资源
    最近更新 更多