用多个字节来代表的字符称之为宽字符,而Unicode只是宽字符编码的一种实现,宽字符并不一定是Unicode。
编译时为字符数组分配若干存储单元,以存放各元素的值,而对字符指针变量,只分配一个存储单元存储地址
char *a; scanf(“%s”,a); 错
char *a,str[10];
a=str;
scanf (“%s”,a); 对
gets(s)函数与scanf("%s:",&s)/* scanf("%s",s) */相似,但不完全相同,
使用scanf("%s",&s); 函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个字符串直到遇到换行为止。
puts()函数的作用与语句“printf("%s\n",s);的作用相同。
1、字符指针变量与字符数组
char *cp; 与 char str[20];
str由若干元素组成,每个元素放一个字符;而cp中存放字符串首地址
char str[20]; str=“I love China!”; ()
char *cp; cp=“I love China!”; ()
str是地址常量;cp是地址变量
cp接受键入字符串时,必须先开辟存储空间
2、初始化字符数组
char str[100]={ 0 } ; //初始化字符数组
scanf(“ %s ”,str); //根据键盘输入初始化
printf( “%s”, str); //打印字符串
3、 初始化字符指针
char *p=NULL ; //0x00000,用指针初始化,必须让指针存储一片可以读写的内存 (这样的初始化是错误的)
scanf(“ %s ”,p); //根据键盘输入初始化
printf( “%s”, p); //打印字符串
4、 str[100]代表第101个元素,下面的初始化就会越界
如果int str[100];
str=”tasklist”; //编译出错。str是数组名,是常量不可以修改。
5、 字符串的处理函数atoi——把字符串转换成长整型数
char *p=”tasklist”; //p存储了字符串常量的首地址
字符串处理函数atoi
函数名:atoi
功能:将字符串转换成整形数
程序例: