C语言—字符串

字符数组与字符串与字符串数组

字符数组:一个数组元素为字符。

char world[] = {'H','e','l','l','o','!'};
数组序号数组元素
world[0]H
world[1]e
world[2]l
world[3]l
world[4]o
world[5]!

字符串:它仍然是一个字符数组,所以字符串就是数组,可用数组运算;但是因为有**‘\0’**,它变成了可以运用字符串运算的字符串。

char world[] = {'H','e','l','l','o','!''\0'};
数组序号数组元素
world[0]H
world[1]e
world[2]l
world[3]l
world[4]o
world[5]!
world[6]\0(一个字节)/0(四个字节)
//注1:以下都是字符串,虽然没有'\0',都是计算机会自动补入一个'\0',故这个数组有6个元素。若要构造一个字符串便用数组,若要处理一个字符串用指针。
		char (const) *str = "Hello";//定义为这样的字符串不可改变
		char world[] = "Hello";
		char line[10] = "Hello";

//注2.当两个字符串中间没有别的符号,则计算机会自动将两个连在一起,如下的相当于"I love you"
         scanf("I"
              "love you");

字符串数组:char a [可不填] [必填(10)] / char *a[必填(10)]

在这里插入图片描述

字符串的输入输出

char world;
scanf("%7s",word);//在'%'与's'之间的数字表示最多允许读入字符的数量,这个数字应该比数组的大小小
printf("%s##\n",world);//##用于区分字符串边界
//注:scanf不读空格和tab和回车

//putchar/getchar:一次只输入输出一个字符,不读回车
int a;
a = getchar();//原型为int getchar(void),返回类型为int是未来返回EOF(-1);windows --> ctrl-z,unix --> ctrl-d:输入结束,此时会返回EOF,但是如果打ctrl-c,意思为终止程序
putchar(a);//原型为int putchar(int c):返回写了几个字符,EOF(-1)表示写失败

字符串函数(包含在include<string.h>头文件内)

strlen(字符串):告诉你字符串有多长

不读回车(sizeof():占据了几个字节,用%lu输出,会读回车)

strcmp(字符串1,字符串2):比较两个字符串大小

从第一位开始比较,若相等便往下继续比较,直至有不相等或字符串结束;相等则返回0,不相等会给出不相等那一位字符串2减掉字符串1的差值。

strcpy(空字符串,被复制的字符串):复制已有字符串,一变二

后面的字符串复制一个到前面的新字符串中,结尾的’\0’也会被复制过去

strchr(字符串,字符):从左到右找字符第一次出现的地方

strrchr(字符串,字符):从右到左找字符第一次出现的地方

以上两个函数返回NULL为没有找到

strstr(字符串1,字符串2):在字符串一中找字符串二

strcasestr(字符串1,字符串2):在字符串一中找字符串二,且忽略大小写

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值