gpt4 book ai didi

C strtok 分隔符返回 → ( 最后

转载 作者:太空宇宙 更新时间:2023-11-04 00:21:46 26 4
gpt4 key购买 nike

我编写了一个程序,我想输入例如“11:12”,然后返回“11”和“12”。这是我的代码:

#include<stdio.h>
#include <string.h>
#include <conio.h>
int main(void)
{
char s[] = "";
char seperator[] = ":";
char *ch;
while (1)
{
scanf("%s", &s); //scanf("%s", &s);
if (s == -1) break;
char *result = NULL;
result = strtok(s, seperator);
while( result != NULL ) {
printf( "result is \"%s\"\n", result );
result = strtok( NULL, seperator );
}
fflush(stdout);

}
return 0;
}

但是当我输入“11:12”时,这是我的输出:

result is "11"
result is "12→ ("

我怎样才能去掉最后的“→ (”?

最佳答案

您没有为“s”数组分配任何内存。像这样尝试一下:

char s[128] = "";

此外,您正在使用参数 &sscanf 上执行双重间接寻址,这是没有必要的,因为“s”将衰减为指针作为指向功能。像这样尝试:

  scanf("%s", s);

关于C strtok 分隔符返回 → ( 最后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13145064/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com