zoukankan      html  css  js  c++  java
  • C语言字符串

    C语言字符串

    一、字符串基础

    注意:字符串一定以结尾。

    Printf(“yang ”);

    其中yang为字符串常量,“yang”=‘y’+‘a’+‘n’+‘g’+‘’。字符串由很多的字符组成,通常使用字符数组来存储字符串,如char name[10]=“yang”;也可以以printf(name);的形式输出,即通过数组来访问字符串,但会有警告。因为默认情况下,printf函数只接受字符串常量作为参数(对变量并未写明)。

    字符串的三种写法:

    1. Char name[8]=“yang”;//数组占用了8个字节的存储空间,但是只含有5个字符。
    2. Char name[8]={‘y’+‘a’+‘n’+‘g’+‘o’};
    3. Char name[8]={‘y’+‘a’+‘n’+‘g’+‘0’};

    这三种写法在内存中的表现都是一样的。

     

    Char name[]={‘y’+‘a’};前面不写个数,不是一个字符串,只能说是一个普通的字符数组。

    char name[]=“yang”;

    Name[1]=‘o’;把字符串的第二个元素值由a改成o。

     

    二、字符串使用注意点

    (1)分析代码,了解的作用。

    Char name[]=“yang”;

    Char name2[]={‘o’+‘k’};

    Printf(“name2=%s”,name2);

    %s:根据右边的参数,打印字符串(遇到为止)

    上面代码的打印结果为:okyang

    下面是内存情况分析:

     

    问1:Char name[]=“yng”;则打印结果为什么?(oky)

    问2:此时打印name的值,使用%s是多少?Yng还是y?

    (2)Strlen函数

    Strlen函数计算字符串的长度(字符数)但不包括,是字符数不是字数。比如一个汉字占三个字符。

    Strlen(“haha”);//长度为4

    Strlen(“哈haha”);//长度为7而不是5

    char name[]=“itcast”;

    Strlen(name);值为2,因为strlen从字符串的地址开始计算,直到遇到为止。

    假设

    Char name[]=“itcast”;

    Char name2[]={‘o’+‘k’};

    Int size=strlen(name);

    此时size的值为8。

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

    Int char_contains(char str[],char c)

    {

    //遍历整个字符串

    For(int i=0,i<strlen(str);i++)

    {

    If(str[i]==c)

    Return 1;

    }

    Return 0;

    }

     

    //调用语句

    Int result=char_contains(“yang”,‘a’);

    //使用while循环

    ①. While(i<strlen(str))

    ②. While(str[i]!=‘’)

    ③. While(str[i])

    ④. Int i=-1;while(str[i++])

     

    三、字符串数组

    二维字符数组,存储两个字符串数组,每个的长度为1,下面是两种写法但存储情况是一样的。

    Char name[2][10]={“jack”,“rose”};

    Char name2[2][10]={

    {‘j’+‘a’+‘c’+‘k’+‘’},

    {‘r’+‘o’+‘s’+‘e’+‘’}

    }

    把rose输出:printf(“%s”,name2[1]);

    输出k:printf(“%c”,name2[0][3]);

  • 相关阅读:
    P1030 求先序排列 P1305 新二叉树
    spfa
    Clairewd’s message ekmp
    Cyclic Nacklace hdu3746 kmp 最小循环节
    P1233 木棍加工 dp LIS
    P1052 过河 线性dp 路径压缩
    Best Reward 拓展kmp
    Period kmp
    Substrings kmp
    Count the string kmp
  • 原文地址:https://www.cnblogs.com/LifeTechnologySupporter/p/9655966.html
Copyright © 2011-2022 走看看