注意:
1.区分字符与字符串的输入与输出:
1)字符:
①输入:
char s1;
scanf("%c",&s1);
或:
s1=getchar();
注:getchar()的函数原型为int getchar(char);即其返回值为int 类型。
②输出:
printf("%c",s1);
或:
putchar(s1);
2)字符串:
①输入:
char str1[10];
scanf("%s",str1);
或:
gets(str1);
②输出:
printf("%s",str1);//注:str1前不需要加*号。
或:
puts(str1);
注意:puts 相当于printf(“%s\n”),会有额外的换行符
3)字符串数组的输入与输出:
示例:
int i;
char str[3][257];
for(i=0;i<3;i++)gets(str[i]);
for(i=0;i<3;i++)printf("%s ",str[i]);
2.返回值是指针类型的函数只允许返回全局量指针、静态量指针或堆内指针,不允许把函数内部声明的局部指针作为返回值。
以下例1错误,例2正确。
例1:
char* fNum(int m){
char name[][8]={"zero","one","two","three","four","five","six","seven","eight","nine","illegal"};
if(m<0||m>9) return name[10];
else return name[m];
}
例2:
char name[][8]={"zero","one","two","three","four","five","six","seven","eight","nine","illegal"};
char* fNum(int m){
if(m<0||m>9) return name[10];
else return name[m];
}
原因是指针的相应空间被释放掉了。