为什么我应该在这里使用 %c 而不是 %s? 如果我使用 %s 将会出错
printf("%c",Array[i]);
当我定义char Array[STRSIZE]="apple";时此处应使用 %s
那么如何正确使用%s和%c呢?
代码:
#include<stdio.h>
#include<string.h>
int main(){
#define STRSIZE 81
char Array[STRSIZE];
printf("Enter a string: ");
gets(Array);
printf("\nYou entered: ");
int i ;
for(i=0;i<strlen(Array);i++){
printf("%c",Array[i]);
}
return 0 ;}
结果:
Enter a string: apple
You entered: apple
最佳答案
%c
打印 char
。 %s
打印一个字符串,因此它需要一个指向 char
的指针.
char Array[STRSIZE];
在这里,Array
是 char
的数组,所以表达式 Array
传递给函数的指针衰减为指向 char
的指针。所以它可以用于%s
(假设字符串有效)。
Array[i]
然而,它不是一个字符串。这是一个char
,因此可以将其传递为 %c
,但不适用于%s
。所以可能性是:
- 用
printf("%s",Array);
打印字符串 - 使用
printf("%c",Array[i]);
打印该字符串的单个字符。通过迭代字符串,您也可以像这样打印整个字符串
关于c - [C]关于 %s 、 %c 的字符串和数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53741237/