【问题标题】:How do I split a string at the first space and consign the strings to different variables? [closed]如何在第一个空格处拆分字符串并将字符串分配给不同的变量? [关闭]
【发布时间】:2017-03-05 06:37:42
【问题描述】:

我需要找到一种方法在中间的空格处拆分两个单词的字符串。

然后我需要将这两个新字符串分配给两个变量(x 和 y)。

我希望第二个字符串从空格后下一个字母的位置开始。

我是这方面的新手,所以欢迎任何简单的建议。

【问题讨论】:

  • 看看strtok。应该是你所需要的。
  • 我不知道如何使用 strtok 将 2 个字符串分配到新数组中。我是新手,所以需要更多信息。
  • 有很多关于如何使用strtok 的资源。试试看。如果遇到困难,请发布您使用 strtok 的尝试。
  • strtok 与分配无关。您是新手这一事实并不能成为您进行研究的借口。我给了你一个提示,如果你希望被勺子喂食,那你会很失望
  • “委托”是什么意思?一个简单的谷歌搜索会给你大量的解决方案,你试过了吗?在不显示您已尝试过的内容的情况下,您的问题将在 SO 上结束

标签: c string spaces


【解决方案1】:

您可以使用strchr 函数来查找字符串中' ' 的第一次出现。然后你可以这样做:

char* wholeSentence = "hello world";
char* startOfSecond = strchr(wholeSentence, ' '); // " world";
size_t lengthOfFirst = startOfSecond - wholeSentence;
char* first = (char*)malloc((lengthOfFirst + 1) * sizeof(char));
strncpy(first, wholeSentence, lengthOfFirst)); // "hello"

你可以用同样的方法找出第二个。

【讨论】:

    【解决方案2】:

    使用 strtok
    示例:

     char x[80] = "This is";
     const char s[] = " ";
     char *y;
     strtok(x, s); // first string
     y = strtok(NULL, s); // second string
    

    【讨论】:

      猜你喜欢
      • 2012-05-10
      • 2012-01-08
      • 1970-01-01
      • 2013-04-19
      • 2013-05-09
      • 2011-07-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多