您的位置:首页 > 编程语言 > C语言/C++

C语言入门----字符串

2015-10-16 11:11 281 查看
在C语言中,没有字符串型数据,只能用字符数组和字符指针来处理字符串。

如:

char ca[10]={‘h’,’e’,’l’,’l’,’o’,’\0’};



char ca[10]={“hello”};



char ca[10]=”hello”;

都表示ca这个字符串中有10个字符(包括”\0”),后面多出的元素自动补\0。但是ca=”string!”;这样的赋值语句是不合法的,后期赋值只能使用循环一个一个的写入,或者使用字符串处理函数进行赋值。

字符串的输入输出

printf和scanf

格式控制符为%s,%s后面的变量是数组名。

如:

char ca[10]={"hello"};


printf("%s\n",ca);


printf中可以在s前面加数字和正负号:

printf("%8s",ca);


系统会自动在左边补空格,输出结果为:□□□hello

□表示空格

加负号

printf("%-8s",ca);


系统会自动在右边补空格,输出结果为:hello□□□

scanf在s前面加数字,意义完全不同,也不能加正负号:

scanf("%3s",ca);


如果输入:abcde

系统会自动截取前面3个字符对ca赋值,ca的值为 “abc”;

puts和gets

格式:

puts(字符数组名);

gets(字符数组名);

如:
char ca[10];

gets(ca);

puts(ca);


注意:gets可以接收空格和TAB键,scanf不可以。

字符串处理函数

strcpy(s1,s2);/*复制(目标串,源串)*/
strcat(s1,s2);/*连接(目标串,源串)*/
int strlen(s);/*返回字符串长度*/
int strcmp(s1,s2);/*比较字符串,逐个比较ASCII码的大小,若s1>s2,返回1;若s1=s2,返回0;若s1<s2,返回-1*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: