我有一个变量:char *string
以及一个 for
循环,其中 int i=0
到 len(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/