我有char *指针并试图计算每个单词的长度。但我没有在调试器中得到任何结果(只是空的空间)。无论我改变什么,我都得不到任何结果。代码:
void wordsLen(char* text, int* words, int n)
{
int i, count = 0, s = 0;
//words[countWords(text)]; // not important
for (i=0; i < n; i++)
{
if (text[i] != ' ')
{
count++;
}
else
{
printf("%d",count);
}
printf("%d",count);//if I add this it types the count from 1 to the end
}
}
我尝试插入此数组:
#include <stdio.h>
#include <string.h>
#include <conio.h>
#define N 100
void main()
{
char t[] = "hello my name is.";
int cum[N];
wordsLen(t, cum, strlen(t));
getch();
}
由于我没有得到任何结果,我想知道为什么,以及计算单词长度的代码有什么问题吗?喜欢计算单词的长度是好还是我需要改变一些东西。
答案 0 :(得分:0)
这是对你的功能的一点修改。
void wordsLen(char* text, int* words, int n)
{
int i, count = 0, s = 0;
for (i=0; i < n; i++)
{
if (text[i] != ' ')
{
count++;
}
else
{
printf("%d",count);
count = 0;
}
}
printf("%d", count);
}
答案 1 :(得分:0)
这里有一些用于计算单词和长度的代码:
void addWord(int* numberOfWords, int* count) {
*numberOfWords = *numberOfWords + 1;
*count = 0;
}
void print(int numberOfWords, int count) {
printf("number of words %d \n", numberOfWords);
printf("word length %d \n", count);
}
void wordsLen(char* text, int* words, int n)
{
int i = 0;
int count = 0;
int numberOfWords = 0;
//words[countWords(text)]; // dynamicly set the length
for (i = 0; i < n; i++)
{
char ch = text[i];
if (ch != ' ')
{
count++;
}
if (count > 0 && (ch == ' ' || (i == n - 1)))
{
print(numberOfWords + 1, count);
addWord(&numberOfWords, &count);
}
}
}
答案 2 :(得分:0)
试试这个:
void wordsLen(char* text, int* words, int n)
{
int i, count = 0, s = 0;
//words[countWords(text)]; // not important
for (i=0; i <= n; i++)
{
if (text[i] != ' ' && text[i] != '\0')
{
count++;
}
else
{
printf("%d ",count);
count = 0;
}
//printf("%d",count);
}
}