lijifeng

导航

黑马程序员——C语言基础 字符串

                                 (以下内容是对黑马苹果入学视频的个人知识点总结) 

(一)字符串

1>字符串是由多个字符组合在一起形成的

2>初始化

char a[] = “123”;  和 char a [] = {‘1’,’2’,’3’};

3>在字符串中\0的作用是很大的

①字符串结束的标记

②printf("%s", name2); 

会从name2这个地址开始输出字符,直到遇到\0为止

 1 #include <stdio.h>
 2 
 3 int main()
 4 {
 5     char name[] = "itc\0ast";
 6     
 7     char name2[] = {'o', 'k'};
 8     
 9     //printf("%s\n", name2);
10     
11     printf("%s\n", &name2[1]);
12     
13     return 0;
14 }
#include <string.h>
#include <stdio.h>

// 可读性 -> 性能 -> 精简(重构)

int char_contains(char str[], char c);

int main()
{
    //int result = char_contains("itc8ast", '8');
    
    char name[] = "itcast";
    
    int result = char_contains(name, 'o');
    
    printf("%d\n", result);
    return 0;
}

// "itc"  '7'
int char_contains(char str[], char c)
{
    int i = -1;
    
    /*
     i  3
     str[++i] 'c'
     c  '7'
     */
    
    // 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[2][10]= {"jack", "rose"};
    
    //printf("%s\n", names[0]);
    
    //printf("%c\n", names[0][3]);
    
    char names2[2][10] =
    {
        {'j', 'a', 'c', 'k', '\0'},
        {'r', 'o', 's', 't', '\0'}
    };
    
    
    return 0;
}

posted on 2015-03-23 18:23  lijifeng  阅读(162)  评论(0编辑  收藏  举报