2014-09-19 99 views
-2

假设我已经输入的字符串:如何获取包含来自C中字符串的字的子字符串?

输入:

My name is John 

如何从这个字符串将包含所有单词的子?

OUTPUT:

My 
name 
is 
John 
+0

什么?你想复制字符串吗?使用'strdup'。 – 2014-09-19 06:07:19

+0

没有抱歉..我想这个问题第一次不够清楚.. 我想要子字符串包含输入字符串中的单词。 – 2014-09-19 06:10:53

+0

当你想要所有的词为什么你需要子串?或者如果你的意思是其他任何明确你的问题。 – InvincibleWolf 2014-09-19 06:11:17

回答

4

使用strtok

int main() 
{ 
    char str[] ="My name is John "; 
    char * pch; 
    printf ("Splitting string \"%s\" into tokens:\n",str); 
    pch = strtok (str," "); 
    while (pch != NULL) 
    { 
     printf ("%s\n",pch); 
     pch = strtok (NULL, " "); 
    } 
    return 0; 
} 
+0

非常感谢。正是我在找什么.. 我对C很新,所以不知道该怎么做。 非常感谢各位代表:) 保重:) – 2014-09-19 06:15:29

+0

如果此答案为您解决了问题,请记得单击旁边的大记号将其标记为接受的答案。 – 2014-09-19 06:28:18

1

你可以使用的strtok() 那里你必须给作为第一个参数字符串,并作为第二个参数的标记。 对于每个辅助调用,您必须将null设置为第一个参数,并将第一个参数设置为第二个参数,即首先出现的字符int要替换为\0的字符串。 函数返回子字符串ehich上的指针,这是因为\0令牌正是你想要的。你的情况,你应该使用这样的:

strtok (YourNonConstString, " "); 

while (cp = strtok (NULL, " ") != NULL) 
{ 
//Gotta do Here your stuff with cp as in each loop it contains the substring. 
} 
相关问题