C字符串分离
C string separation
我查看了相关主题,尝试了一些示例,但没有找到任何对我有帮助的东西。
我正在输入一个字符串,例如 char str[50]
它具有以下格式 Remove 1 1
删除可以是另一个具有不同长度的词
整数的数量可以超过 2
如果可能的话,我需要将字符串的每个部分存储在不同的变量中作为数值 int
我尝试使用 strcmp stracat strtok strstr 但显然我遗漏了一些东西
char str[] = "Remove 2 3 2";
char * pch;
char split[50];
printf("Splitting string \"%s\" into tokens:\n", str);
pch = strtok(str, " ");
while (pch != NULL) {
printf("%s\n", pch);
strcat(split,pch);
printf("\nThe string is %s",split);
pch = strtok(NULL, " ");
}
这是我最近的一次尝试。我想做的是删除 space 个字符,然后我可能可以识别 Remove 后面的词,例如如果它被删除或者它是带有 strstr 的其他单词。但是如何将数值分开?这是我如何摆脱这些字符的输出
The string is ��_o�Remove2
The string is ��_o�Remove23
The string is ��_o�Remove232
The string is ��_o�Remove232
strcat 连接。我相信你想要的是一个一个地得到拆分的部分,而不是将它们连接起来。
所以你最好尝试这样的事情:
char split[MAX_NUM_TOKENS][50];
int num_tokens = 0;
而不是 strcat,使用类似的东西:
strcpy(split[num_tokens], *pch);
printf("The string is %s\n",split[num_tokens]);
num_tokens++;
据我了解,您可能希望将每个字符串组件放入一个单独的变量中,那么为什么不使用数组呢??
只需检查 space 并忽略它们
char str[] = "hi 1 2 3";
char store[100];
int i=0,j=0;
for(i = 0,j = 0; i <= strlen(str); i++){
if(str[i] != 32) { // value of space is 32
store[j] = str[i];
j++;
}
}
for( i = 0; i < strlen(store); i++){
printf("%c\n",store[i]);
}
输出:
h
i
1
2
3
我查看了相关主题,尝试了一些示例,但没有找到任何对我有帮助的东西。
我正在输入一个字符串,例如 char str[50] 它具有以下格式 Remove 1 1 删除可以是另一个具有不同长度的词 整数的数量可以超过 2 如果可能的话,我需要将字符串的每个部分存储在不同的变量中作为数值 int
我尝试使用 strcmp stracat strtok strstr 但显然我遗漏了一些东西
char str[] = "Remove 2 3 2";
char * pch;
char split[50];
printf("Splitting string \"%s\" into tokens:\n", str);
pch = strtok(str, " ");
while (pch != NULL) {
printf("%s\n", pch);
strcat(split,pch);
printf("\nThe string is %s",split);
pch = strtok(NULL, " ");
}
这是我最近的一次尝试。我想做的是删除 space 个字符,然后我可能可以识别 Remove 后面的词,例如如果它被删除或者它是带有 strstr 的其他单词。但是如何将数值分开?这是我如何摆脱这些字符的输出
The string is ��_o�Remove2
The string is ��_o�Remove23
The string is ��_o�Remove232
The string is ��_o�Remove232
strcat 连接。我相信你想要的是一个一个地得到拆分的部分,而不是将它们连接起来。
所以你最好尝试这样的事情:
char split[MAX_NUM_TOKENS][50];
int num_tokens = 0;
而不是 strcat,使用类似的东西:
strcpy(split[num_tokens], *pch);
printf("The string is %s\n",split[num_tokens]);
num_tokens++;
据我了解,您可能希望将每个字符串组件放入一个单独的变量中,那么为什么不使用数组呢??
只需检查 space 并忽略它们
char str[] = "hi 1 2 3";
char store[100];
int i=0,j=0;
for(i = 0,j = 0; i <= strlen(str); i++){
if(str[i] != 32) { // value of space is 32
store[j] = str[i];
j++;
}
}
for( i = 0; i < strlen(store); i++){
printf("%c\n",store[i]);
}
输出:
h
i
1
2
3