首页 > 代码库 > 黑马程序员——c语言的字符串

黑马程序员——c语言的字符串

1、 字符串
 
1. 什么是字符串
● 简单的字符串itcast
● 一个i是一个字符
● 很多个字符组合在一起就是字符串了
2. 字符串的初始化
● char a[] = 123;   char a [] = {1,2,3};的区别,可以比较大小
● 123其实是由123\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

 

 1 #include <string.h> 2 #include <stdio.h> 3  4 // 可读性 -> 性能 -> 精简(重构) 5  6 int char_contains(char str[], char c); 7  8 int main() 9 {10     char name[] = "itcast";11     12     int result = char_contains(name, c);13     14     printf("%d\n", result);15     return 0;16 }17 18 // "itc"  ‘7‘19 int char_contains(char str[], char c)20 {21     int i = -1;22 23     // 1.遍历整个字符串24     while ( str[++i] != c && str[i] != \0 ) ;25     26     //return str[i] == ‘\0‘ ? 0 : 1;27     return str[i] != \0;28 }

 

 字符串数组

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" };

 

 1 #include <stdio.h> 2 int main() 3 { 4     char name[] = "jack"; 5      6     char name1[] = "rose"; 7      8     char name2[] = "jim"; 9     10     char name3[] = "jake";11     12     char names[2][10]= {"jack", "rose"};13     14     printf("%s\n", names[0]);15     16     printf("%c\n", names[0][3]);17     18     char names2[2][10] =19     {20         {j, a, c, k, \0},21         {r, o, s, t, \0}22     };23     24     25     return 0;26 }

 

 

 

 

黑马程序员——c语言的字符串