c语言的字符串

时间:2022-11-23 23:29:01

1、 字符串

 
1. 什么是字符串
● 简单的字符串”itcast”
● 一个’i’是一个字符
● 很多个字符组合在一起就是字符串了
2. 字符串的初始化
● char a[] = “123”;  和 char a [] = {‘1’,’2’,’3’};的区别,可以比较大小
● “123”其实是由’1’、’2’、’3’、’\0’组成
● “123”的存储分布
● 字符串的输出”%s”,’\0’是不会输出的
3. \0的作用
● 输出char a[] = {‘o’,’k’};
● 在char a[]前面搞个”mj”
● 输出”mj”
● 再输出a
● char a[] = {‘i’,’t’,’\0’,’c’};
4. 常用字符串处理函数
● strlen(注意中文)
2. 习题

编写一个函数char_contains(char str[],char c),如果字符串str中包含字符c则返回数值1,否则返回数值0

 #include <string.h>
#include <stdio.h> // 可读性 -> 性能 -> 精简(重构) int char_contains(char str[], char c); int main()
{
char name[] = "itcast"; int result = char_contains(name, 'c'); printf("%d\n", result);
return ;
} // "itc" '7'
int char_contains(char str[], char c)
{
int i = -; // 1.遍历整个字符串
while ( str[++i] != c && str[i] != '\0' ) ; //return str[i] == '\0' ? 0 : 1;
return str[i] != '\0';
}
 字符串数组

1.使用场合

* 一维字符数组中存放一个字符串,比如一个名字char name[20] = "mj"

* 如果要存储多个字符串,比如一个班所有学生的名字,则需要二维字符数组,char names[15][20]可以存放15个学生的姓名(假设姓名不超过20字符)

* 如果要存储两个班的学生姓名,那么可以用三维字符数组char names[2][15][20]

2.初始化

char names[2][10] = { {'J','a','y','\0'}, {'J','i','m','\0'} };

char names2[2][10] = { {"Jay"}, {"Jim"} };

char names3[2][10] = { "Jay", "Jim" };

 #include <stdio.h>
int main()
{
char name[] = "jack"; char name1[] = "rose"; char name2[] = "jim"; char name3[] = "jake"; char names[][]= {"jack", "rose"}; printf("%s\n", names[]); printf("%c\n", names[][]); char names2[][] =
{
{'j', 'a', 'c', 'k', '\0'},
{'r', 'o', 's', 't', '\0'}
}; return ;
}