问个原因
#include<stdio.h>int main()
{
char a[]="I love you",b,*p1,*p2;;
int i;
p1=a;
p2=b;
for(;*p1!='\0';p1++,p2++)
{
*p2=*p1;
}
*p2='\0';
printf("a;%s\n",a); //这儿输出用%s
printf("b: ");
for(i=0;b!='\0';i++)
{
printf("%c",b); //这儿输出用%c
}
printf("\n");
}
//为啥同样都是字符型 一个用%S 一个用%c? %s是格式化成串
%c是单个字符 %s和%c都属于占位符,也就是我们告诉编译器我们即将要打印什么类型的数据出来,%s表示我们将打印字符串(例如:fishC),%c代表我们将打印单个字符(例如:C),类似的还有%d(整数),%f(单精度浮点型),%lf(双精度浮点型)等等等,你要打印什么类型的数据就需要有什么占位符,例如你声明int a = 1;那么最好就是用printf("%d",a);而不是用printf("%s",a);来打印a,否则会报错,具体详情可以百度搜索:C语言占位符{:10_256:} a 其实不是字符型,而是字符数组,也就是字符串
b 才是一个字符型
所以在输出a时,需要使用字符串型格式符,也就是%s
在输出b时,需要使用字符型格式符,也就是%c
页:
[1]