c - 如何遍历以空格分隔的每个单词?

标签 c string ansi

<分区>

我正在寻找一种方法来遍历从 C 中的 getchar() 函数收集的字符串中的每个单词。我不能使用指针。句子中的每个单词都会对其进行一些处理,但不应受到其他单词的影响,我需要一种访问字母的方法,例如即使我在第三个单词处,buffer[k] 如果 k = 0 将给出第三个单词的第一个字母。

void read_line (char buffer[])
{
    char character;
    int i = 0;

    for (i = 0; i < 32; ++i)
    {
        character = getchar ();
        buffer[i] = character;
    }
}

最佳答案

通常您会使用 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;
    }
} 

关于c - 如何遍历以空格分隔的每个单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13058657/

相关文章:

使用 __VA_ARGS__ 转换在 MACRO 中传递的所有参数

java - 如何判断读取结束

c - 在c中优化数组循环

c++ - 如何在 C++ 中使用 printf

c - 错误: expected expression before ‘char’

python - 尝试根据列是否包含特定字符串对其进行重新编码

php - 使用 str_getcsv 有什么好处?

java - 连接 Java 字符串中的连续整数

c - 用于从路径中提取文件名的可移植纯 C 函数

sql - 在查询中两次使用相同的表别名