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

零基础学C语言 笔记九 字符串

2015-09-03 19:00 453 查看
1.字符串

如果你存放的是一个字符串,那么就必须要有一个’\0’字符来表示字符串的结束

注意:

char name[10] = {‘l’,’o’,’v’,’e’,’\0’};//这个字符数组的长度是10,字符串的长度是4
char name1[3] = {‘l’,’o’,’v’,’e’,’\0’};存储不下,没有\0,就不安全
char name2[] = {‘l’,’o’,’v’,’e’,’\0’};这个字符数组的长度是5,字符串长度是4
char name3[] = {“love”};这个字符数组的长度是5,字符串的长度是4;
char name4[] = “love”;这个字符数组的长度还是5,字符串的长度是4


2.如何输出一个字符串

a.因为字符串是存放在char类型的数组里面的,所以可以用循环把字符数组里面的每一个元素用%c打印出来。

b.%s 打印字符串

其实也是将字符数组里面存放的元素一个一个的打印,知道遇到\0结束

3.如何输入一个字符串

char name[10];
printf(“请输入一个字符串\n”);
scanf(“%s”,name);//不要取地址符,name本来就是一个地址


注意:如果输入一个空格,就默认结束了


4.如何计算字符串的长度

字符串的长度是遇到’\0’之前的所有的字符的个数和。

5.字符串常用的函数

这些都是在string.h这个头文件中

a).puts();输出一个字符串 自动换行 只能输出字符串,不能使用格式符号

b).gets();接受用户输入一个字符串,遇到空格不会看成是结束

c).scanf()函数 和get()函数,都是不安全的,因为如果保存字符串的字符数组长度小于输入的字符串的长度,就保存不下,就没有地方保存’\0’。

d).strcmp();比较两个字符串(比较字符串的ASCII码),返回一个整数,如果返回的是一个正数,则说明第一个比第二个大,如果返回的是一个0,相等

e).strlen();计算字符串的长度。返回的是unsigned long类型

f).stcpy();拷贝 把第二个字符串拷贝到第一个里面去,’\0’也要拷进去,第一个保存数组的长度要保存的下第二个字符串。

g).strcat();链接字符串,把两个字符串链接成一个新的字符串存放到第一个数组里面去,第一个数组的长度要能够存放的下这个新的字符串

那么我们若不用strlen()计算字符串的长度,我们还可以自己写函数来进行计算。

char name[] = “love”;
int count = 0;
while(1)
{
    if(name[count] != ‘\0')
    {
        count ++;
    }else
    {
        break;
    }
}
printf(“%d\n”,count);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: