在c语言中,没有string类型,需要用字符型数组来表示字符串。
一、定义:
存储类型 数据类型 数组名[元素个数]
eg :char ch[5]
二、初始化:
(1)完全初始化
eg:char ch[5] = {'h','e','l','l','o'}; //没有\0
char ch[5] = "hello"; //无\0
={"hello"};
char ch1[6] = "hello";//有\0
注意:用字符串初始化时,默认结尾有\0,但若字符串长度大于等于字符数组长度,则没有\0
(2)部分初始化
char ch[5] = {'h','c'}//其他默认为'\0'
(3)省略初始化
char ch[] = "hello";
三、字符串操作函数:(头文件为#include <string.h>)
1.strcpy:复制字符串
函数声明:char *strcpy(char *dest, const char *src);
参数: dest:目标地址 src : 源地址(需要复制内容)
返回值: 目标字符串的首地址
2.strlen: 求字符串长度,不包括\0
函数声明:size_t strlen(const char *s);
参数:s:字符串的首地址
返回值:有效字节数(默认为长整型)
3.strcmp:比较两个字符串大小,对应scii码值按单个字符依次比较
函数声明int strcmp(const char *s1, const char *s2);
参数:s1(字符串一的起始地址),s2(字符串2的起始地址)
返回值:如果s1大于s2返回大于0的整数
如果s1等于s2返回0
如果s1小于s2返回小于0的整数
4.strcat:将两个字符串拼接在一起,并覆盖目标字符串的\0
函数声明:char *strcat(char *dest, const char *src)
参数: dest:目标地址 src : 源地址(需要复制内容)
返回值:返回拼接之后的目标字符串
注意:默认保存的字符串长度应该大于或等于两个字符串加起来的长度,否则会溢出缓冲区
5.strstr:在目标字符串中查找所求字符串(不包含'\0')第一次出现的位置;
函数声明:char *strstr(const char *haystack, const char *needle);
参数:haystack:目标字符串地址 needle:
返回值:needle在haystack中第一次出现的位置