我试图写一个函数,获取指向char数组的指针,从用户读取一个字符串并删除字符串开头的所有空格,直到出现第一个不是字符串的字符。最后在开始时返回没有空格的字符串的副本。strtok不按预期工作
例如,
输入abcd
函数应该返回字符串指针abcd
。
用于输入123 123
函数应返回指向字符串123 123
的指针。
的功能如下所示,
void read_RemoveSpace(char * str)/**read the rest of string**/
{
char tempRead[30];
fgets(tempRead,30,stdin);
char *ptr = strtok(tempRead, " "); /**remove spaces between command and other data**/
strcpy(str,ptr); /**copy the new string without the spaces.**/
}
但由于某些原因如预期的功能strtok()
不工作。
在输入的情况下:
123 456
该函数返回仅第一部分无空格而不是字符串的剩余部分,即它指向
123
有什么建议?
和你的**问题**!? – StoryTeller
您面临的问题是什么?您如何调用函数?调用后存储在str中的是什么? – Vijay
'strtok_r()'按预期工作,也许只是你的期望不正确... – 2012-12-25 13:00:25