我希望能删除字符串中的最后一个字符。
首先,我使用strtok函数。
我的输入是:
我的期望结果是这样的:
"Hello World Yaho"
我使用" "
作为分隔符。我的期望结果是这样的:
Hell
Worl
Yah
但实际输出结果是这样的
Hello
Worl
Yaho
我该如何解决这个问题?我无法理解这个输出
这是我的代码
int main(int argc, char*argv[])
{
char *string;
char *ptr;
string = (char*)malloc(100);
puts("Input a String");
fgets(string,100,stdin);
printf("Before calling a function: %s]n", string);
ptr = strtok(string," ");
printf("%s\n", ptr);
while(ptr=strtok(NULL, " "))
{
ptr[strlen(ptr)-1]=0;
printf("%s\n", ptr);
}
return 0;
}
strtok
在while表达式中应该是循环体中的最后一条语句,而while表达式应该简单地检查ptr != NULL
。 - WhozCraig