1、简介
字符串是由多个字符组成的一段话。
在c语言中,是没有办法直接定义字符串数据类型的,但是可以使用数组来定义我们需要的字符串。
一般有下方两种定义形式:
char 字符串名字[长度] = "字符串值";
char 字符串名称[长度] = {'字符1','字符2',...'字符n','\0'};
注意:
- []中的长度可以省略
- 采用第二种方式时,最后一个元素必须是’\0’,’\0’表示字符串的结束标志;
- 采用第二种方式的时候,数组中不能写中文
在输出字符串的时候要使用:printf("%s", 字符数组名字); 或者puts(“字符数组名字”)
#include <stdio.h>
int main()
{
char string1[] = "我爱中国!";
char string2[] = {'h', 'e', 'l', 'l','o', '\0'};
printf("%s\n", string1);
printf("%s\n", string2);
return 0;
}
2、例子
#include <stdio.h>
void say(char string[])
{
printf("%s\n", string);
}
int main()
{
char string1[] = "我爱中国!";
char string2[] = {'h','e','l','l','o','\0'};
say(string1);
say(string2);
return 0;
}
3、字符串函数
常用的字符串函数如下:
strlen( stringName)
strlen()获取字符串长度时\0 是不包括进去的,且汉字与字母长度不一样
char str1[] = "你好呀";
char str2[] = {'h','e','l','l','o','\0'};
int len1 = strlen(str1);
int len2 = strlen(str2);
printf("str1的长度为:%d\n", len1);
printf("str2的长度为:%d\n", len2);
strcmp( stringName1, stringName2)
strcmp()在比较的时候回把字符串转成ASCII码再进行比较, 返回0表示s1和s2的ASCII码相等; 返回正数表示s1比s2的ASCII码大; 返回负数表示s1比s2的ASCII码小;
char str1[] = "a";
char str2[] = "b";
char str3[] = "c";
printf("a的ASCII码为:%d\n", 'a');
printf("b的ASCII码为:%d\n", 'b');
printf("c的ASCII码为:%d\n", 'c');
printf("str1与str2的比较结果为:%d\n", strcmp(str1, str2));
printf("str2与str3的比较结果为:%d\n", strcmp(str2, str3));
printf("str1与str3的比较结果为:%d\n", strcmp(str1, str3));
本质上应该是把str1的ASCII码减去str2的ASCII码
|