由于某些原因,无论我尝试strchr还是strrchr,我都会得到相同的返回值。我不知道为什么。
下面是给我带来麻烦的那段代码:
printf("Enter a data point (-1 to stop input):\n");
fgets(input, 50, stdin);
char *name = strrchr(input, ',');
if(name)
{
printf("%s", name);
}输入为Jane Austen, 6,我尝试将其分成两个字符串:一个在逗号之前,另一个在逗号之后。但是,我使用strrchr(input, ',');或strchr(input, ',');似乎毫无意义,因为我的输出总是, 6。有人能解释一下原因吗?
发布于 2019-11-26 11:08:12
听起来你想要的是strtok:
char *name = strtok(input, ",");
char *value = strtok(NULL, ",");发布于 2019-11-26 12:20:38
一些语言提供了字符串函数split,它接受字符串或正则表达式,并将字符串拆分成由分隔符(python、ruby、perl)分隔的子字符串列表。构造这样一个拆分函数并不太难,特别是当你只拆分一个字符的时候。
char** split(char* string, char delim);您还需要一个字符串连接函数和一个清理已分配空间的函数。
char* split_join(char** splitray, char* buffer);
void split_free(char** splitray);https://stackoverflow.com/questions/59043099
复制相似问题