C 编程:
我试图获取字符串中每个单词的长度,但遇到了很多麻烦,无论我使用什么方法都会出现段错误。
我最初尝试只使用“strlen(pstr)”,但这导致了段错误。
这是我最近的尝试,但仍然会导致段错误:
void format_text(char* text)
{
char* pstr;
char copied[1000];
int loop;
int strCnt = 0;
int temp;
int strSize[100];
int strNo[100];
pstr = strtok(text, " ");
while (pstr != NULL)
{
pstr = strtok(NULL, " ");
strcpy(copied, pstr);
strSize[strCnt] = strlen(copied);
strCnt++;
}
printf("the number of strings is: %d\n", strCnt);
for (loop = 0; loop < strCnt; loop++)
{
printf("The length of string %d is %d\n", loop + 1, strSize[loop]);
}
}
如何获取并打印每个单词(token)的长度?
最佳答案
您不需要copied
字符串来获得长度,您可以简单地使用pstr
。并且,您需要将 strtok()
放在 strlen()
之后,否则您将错过第一个单词的长度。
这是应该起作用的:
pstr = strtok(text, " ");
while (pstr != NULL)
{
strSize[strCnt++] = strlen(pstr);
pstr = strtok(NULL, " ");
}
关于c - 获取字符串 token 的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18428524/