【问题标题】:How to split a string in c如何在c中拆分字符串
【发布时间】:2020-12-18 16:13:44
【问题描述】:

我得到了课程序列号的前 5 位数字,然后是课程名称 我想从名称中拆分序列号以保存在结构中 例如:

19234 Programming 101

我想拆分到:

array[0]=19234
array[1]=programming 101

谢谢。

【问题讨论】:

  • strtok() 不做你想做的事吗?
  • @Barmar 不要使用strtok()strtok() 使用static 变量,这使得它在多线程环境中的行为不可预测,并且在子例程和更高例程都使用strtok() 的情况下会出现意外。 strtok_r() 更好。

标签: c


【解决方案1】:

非常简单,您可以使用之前从 barmar 提到的函数 strtok()。 strtok() 是一个函数,它首先需要两个参数,您必须插入要拆分的字符串,然后在第二个参数中在“here”中声明要拆分什么。您可以简单地使用“”表示真空或逗号等。 示例:

int main(){
      char s[SIZE]="19234 Programming 101";
      char *c; // needs to be pointer

      c=strtok(s," ");
      printf("%s",c); // it will print this '19234'

      return 0;
}

【讨论】:

  • 不要使用strtok()。我回答了为什么你不应该在这里使用strtok()stackoverflow.com/questions/15472299/…
  • @12431234123412341234123 我不会遵循那个,对不起
  • 如果您使用的是 Linux、Windows、Mac、Anroid,... 您可以将 strtok() 替换为 strtok_r()strtok_s() 并逐个传递您不使用的指针还要别的吗。 char *context; strtok_r(s," ",&context);.
猜你喜欢
  • 1970-01-01
  • 2011-01-15
  • 2020-11-29
  • 1970-01-01
  • 1970-01-01
  • 2021-08-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多