题目
从标准输入读入一行包含空格的文本字符串,使用字符指针定位并输出第一个空格字符所在的下标位置(从 0 开始)。若无空格输出 -1。
输入格式:输入一行包含字符的文本串(以换行符结束)。
输出格式:输出一个整数表示第一个空格的下标索引;未找到输出 -1,末尾换行。
数据范围与约定:字符串长度不超过 500。
思路与算法
1. 字符指针线性探测
指针 const String / char[]p = str;,循环向前移动直到 *p == ' ' || *p == '\0'。
2. 指针减法求偏移量
若找到空格,两个同类型指针相减 p - str 会自动计算出它们之间的元素偏移个数,对应数组下标。
完整程序
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
if (!sc.hasNextLine()) {
System.out.println(-1);
return;
}
String s = sc.nextLine();
// 线性扫描查找首个空格字符的索引
int idx = -1;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == ' ') {
idx = i;
break;
}
}
System.out.println(idx);
}
}运行示例
输入:
hello world输出:
5