◆ IRinsho BLOG / 04
头像
←返回列表 c语言学习 / 2026/09/28 / C 语言中手动遍历字符串的经典写法
c语言学习2026/09/28

C 语言中手动遍历字符串的经典写法

如何实现把每一位上的数独立输出出来(for循环)

**修正案例**

案例代码

其中Pasted image 20260922164209是主要函数体其中 int i = 0;意义为:声明一个整数变量 i,作为字符串数组的下标(索引)。初始化为 0,表示从字符串的第一个字符开始访问(C语言数组下标从 0 开始)。

Pasted image 20260922164528 是for循环条件既:只要当前字符不是结束符(‘\0’),就继续循环;一旦遇到 \0,循环立刻停止。 这样就保证了下标 i 永远不会越界读取后面的垃圾数据。而str[i] 表示当前下标 i 对应的那个字符。'\0' 是 C 语言的字符串结束符(ASCII码为 0)。在 C 语言中,任何字符串的末尾都会被系统自动加上一个 \0,用来标记“字符串到这里就结束了”。

Pasted image 20260922164728做迭代更新既:每次循环体执行完后,i 加 1。这样下一次循环时,str[i] 就会去访问下一个字符。

⚠️ 极重要的安全提醒:

这个循环能安全结束的前提是:str 数组中必须含有 \0。

💡 常见应用场景:

我们很少写这种循环只是为了数数,通常是为了处理字符串里的每一个字符,例如:

  1. 转大写:str[i] = toupper(str[i]);
  1. 统计某个字母出现次数:if (str[i] == 'a') count++;
  1. 字符串拷贝:dest[i] = src[i];(在循环外最后补一个 dest[i] = '\0';)

Pasted image 20260922165116这段代码必须写在for{}循环里面否则i的定义会失效

format: "%c " (核心格式控制)

str[i] (填充的数据)

这是对应 %c 的实际参数。str 是字符串数组,i 是当前循环的下标,str[i] 就是当前正在处理的这个字符。printf 会把 str[i] 的值填到 %c 的位置。

⚠️ 易错点与注意事项:

  1. %c 和 %s 绝对不能混用:
  1. 中文字符问题:%c 通常用于打印 ASCII 字符(英文、数字、标点)。如果 str 里有中文,%c 打印出来可能会是乱码,因为一个中文字符通常占 2 到 3 个字节(UTF-8 下占 3 字节),而 %c 每次只读一个字节。

知识串联

特殊换行代码 去掉末尾的空格