c - 一次打印 C 字符串的单个字符

标签 c string

我有一个变量:char *string 以及一个 for 循环,其中 int i=0len(string)

在循环内,它打印 &string[i]

试图让它只显示一个单个字符, 但如果我有一个字符串“red”, 它会打印:

red
ed
d

最佳答案

为了使用 printf() 打印字符,您需要使用适当的格式说明符 %c,如下所示:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void)
{
  char* string = malloc(sizeof(char) * 16);
  strcpy(string, "red");
  for(size_t i = 0; i < strlen(string); ++i)
  {
    printf("%c\n", string[i]);
  }
  return 0;
}

输出:

r
e
d

正如 @jonathanLeffler 评论的那样,putchar(string[i]); 也能达到目的。

<小时/>

在您的尝试中,出了问题的是这一行*:

printf("%s\n", &string[i]);

由于字符串的格式说明符%s,它将从i开始打印整个字符串,直到其结尾(满足NULL终止符)-角色。

<小时/>

根据您的示例输出和帖子进行逆向工程。

关于c - 一次打印 C 字符串的单个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60013022/

相关文章:

c - Ping6无响应?

c - 在没有锁的情况下将循环缓冲区与写入和读取操作同步

c - 可视化 C 源代码的工具

c - 这个程序怎么可能有意义?

string - 如何将空字符串插入 Microsoft Power Automate 中流程操作的字段中

c - 二维字符串数组的最后一个元素覆盖先前的数组元素

c++ - 测试整数类型是有符号还是无符号的宏

java - 在 java : O(n) 中查找字符串中字符频率的有效方法

javascript - 用于分割字符串的复杂正则表达式

php - 有没有办法在 PHP 双引号字符串中使用函数?