题目

字符串指针:找第一个空格位置

思路

本题在字符串中找第一个空格的位置(下标)。

用指针 p 从串首往后走,直到遇到空格或 '';若找到空格,输出下标 p - s,否则按题面表示「没有空格」。

解题分析

指针遍历直到空格或换行,返回偏移量。fgets 读入时行尾带 \n,找空格要在 \n 之前停。

完整程序

#include <stdio.h>

int main(void)
{
    char line[1000];
    if (!fgets(line, sizeof line, stdin)) {
        return 1;
    }
    const char *p = line;
    while (*p && *p != ' ' && *p != '\n') {
        p++;
    }
    if (*p == ' ') {
        printf("%td\n", p - line);
    } else {
        printf("-1\n");
    }
    return 0;
}

运行示例

输入:

hello world

输出:

5