C语言----字符串(基础篇十)

    继续提升吧!

  字符串

    在C语言中,没有字符串型数据,只能用字符数组和字符指针来处理字符串。

      如:

        char ca[10]={‘h’,’e’,’l’,’l’,’o’,’\0’};

      或

        char ca[10]={“hello”};

      或

        char ca[10]=”hello”;

      都表示ca这个字符串中有10个字符(包括\0)。后面多出的元素自动补\0。但是运算中出现ca=”string!”;这样的赋值语句是不合法的,后期赋值只能使用循环轮循数组元素,一个一个写入。或者用字符串处理函数进行赋值。

 

  字符串的输入输出

    printfscanf

 

        格式控制符为%s         /*s为string的意思*/

 

 

        与字符型数据处理不同的是,用%s后面的变量一定是数组名。

        如:

          char ca[10]={“hello”};

          printf(“%s\n”,ca);       //输出字符串的时候,只写变量名称,不要这样写。如:ca[5] 

 

        printf中可以在s前面加数字和正负号:

          printf(“%8s”,ca);       // %8s   的意思是:输出的结果如果不够八位,补 空格

          系统会自动在左边补空格,输出结果为:□□□hello

 

         加负号

          printf(“%-8s”,ca);

         系统会自动在右边补空格,输出结果为:   hello□□□

 

      scanf在s前面加数字,意义完全不同,也不能加正负号:

        scanf(“%3s”,ca);

          输入:

          abcde(回车)

        电脑会自动截取前面3个字符对ca赋值,ca的值为”abc”。

 

    putsgets

      格式:

        puts(字符数组名);

        gets(字符数组名);

      如:

        char ca[10];

        gets(ca);

        puts(ca);

      注意:gets可以接收空格和TAB键,scanf不可以。

  字符串处理函数

    strcpy(s1,s2):复制(目标串,源串)  //相当于赋值,把s2的值赋值给s1

    

    strcat(s1,s2):连接(目标串,源串)   // 连接的意思是: 假如  s1 = "ab"     s2 = "cd"  ,执行函数以后的结果是: s1 = "abcd";    s2 = "cd";

 

    int strlen(s):求长度(字符串),返回长度   //长度是整型   假如:s = "abc";    返回的  leng  =  3

 

    int strcmp(s1,s2):比较(串1,串2),返回值>0,表示s1>s2=0,表示s1=s2<0表示s1<s2

 


   程序1

 

// 10_1.字符串处理函数
#include <stdio.h>

void main()
{
    char ca[5] = "str1";      //声明字符串两种不同的格式。
    char cb[5] = { "str2" };
    char cc[10];


    strcpy(cc,ca);
    printf("复制串:cc = %s\n", cc);

    strcat(cc,cb);
    printf("连接串:cc = %s\n", cc);

    
    printf("cc.leng = %d\n", strlen(cc));   //字符串的长度


    printf("比较 ca 和 cb 大小 = %d\n", strcmp(ca, cb));

}

 

 


   程序2

 

//用户输入若干个大写字母,将这些大写字母转换成小写字母输出。 

#include <stdio.h>
void main()
{
    //用户输入大写字母转换成小写字母    
    char  inputAlphabet[100]; //用户输入的字符

    printf("请输入大写字母:");
    gets(inputAlphabet);

    for (int i = 0; i < strlen(inputAlphabet); i++)
    {
        if (inputAlphabet[i] >= 65 && inputAlphabet[i] <= 90)
        {
            printf("%c", inputAlphabet[i] + 32);
        }
        else
        {
            printf("退出,重新输入!");
            exit();

        }
    }
}

 

posted @ 2021-08-28 01:19  httpcc  阅读(341)  评论(0编辑  收藏  举报