我正在寻找一种方法来迭代从C中的getchar()
函数收集的字符串中的每个单词。我不能使用指针。句子中的每个单词都会对其做一些事情,但不应受其他单词的影响,我需要一种方法来访问这些字母,例如即使我在第三个单词buffer[k]
if {{ 1}}会给出第三个单词的第一个字母。
k = 0
答案 0 :(得分:1)
没有指针就很难(你传递数组,那些也是指针)。但你可能根本没有分配内存。看看strtok。
澄清:
正如@EdS在下面的评论中指出的那样,数组和指针不是同样的东西。但是,在许多情况下,它们几乎是相同的东西。将数组传递给函数并将指针传递给函数几乎总是相同的 - 实际上。
所以,请记住指针和数组不一样,你应该了解其中的差别,但不要担心它。
答案 1 :(得分:1)
你想读一个书写的字符串行并计算单词,这是对的吗?
首先,阅读字符串:
char* str = gets(NULL);
int i = 0;
char* tok = strtok(str," ");
while(tok != NULL) {
i++;
tok = strtok(NULL, " ");
}
你计算所有单词,用空格分隔。
答案 2 :(得分:1)
通常你会使用strchr在字符串中查找空格,但是因为你不能使用指针:
void read_line (char buffer[])
{
char character;
int i = 0;
for (i = 0; i < 32; ++i)
{
character = getchar ();
if (character == '\n')
break;
buffer[i] = character;
}
i = 0;
while (buffer[i] != '\n')
{
for (; buffer[i] != ' '; ++i)
// each iteration of this loop will be on the same word
++i;
}
}