首页 > 其他分享 >C语言入门零基础:9、字符串

C语言入门零基础:9、字符串

时间:2024-08-13 20:54:22浏览次数:17  
标签:字符 入门 C语言 char printf 字符串 include hello

一、字符串定义

        1、字符串和字符数组的区别:

                字符数组存任意数组都可以,它可以以任何字符结尾;

                字符串需要使用字符数组来存,但是结束必须要有一个'\0'字符;

                只有字符串才能用双引号定义

        2、字符串定义格式

                将26个字母存储成一个字符串。
        
                (1) char zimu[27] = {'A','B','C','D','E'。。。。。'Z','\0'};
        
                (2) char zimu[27] = "abc....z"; //结束时要预留一个空间,系统会自动补一个'\0'

                          即实际存储的是'a','b','c',....'Z','\0'。

        3、字符串的输入输出

                字符串可以整体的输入和输出  

                格式控制符 :%s 
                输入 : char型地址,从给定的地址开始一个字符一个字符放入到内存空间中,遇到空格或者回车结束的时候会给你在后面补个'\0'
                输出 :char型地址, 从给定的地址开始 一个字符一个字符输出,遇到'\0'结束

注意:用%s时不论是输出还是输入都要传地址

二、字符串处理函数

        1、strlen


                功能:返回指定字符串的长度 
        
                怎么用:
                    #include <string.h>
                    size_t strlen( char *str );
            
                    函数返回字符串str 的长度( 即空值结束符\0之前字符数目)。
            
                用法:
                    输入一个字符串,输出这个字符串对应的长度
            
                    char str[30];
                    printf("请输入字符串");
                    scanf("%s",str);
            
                    int res = strlen(str);
                    printf("%d",res);

                

        可以看到我输入了123456,输出为6个字符

        2、strcat

                功能:连接两个字符串 
        
                怎么用:
                    #include <string.h>
                    char *strcat( char *str1, const char *str2 );
            
                    函数将字符串str2 连接到str1的末端,并返回指针str1. 
        
                使用:
                    #include<stdio.h>
                    #include<string.h>

                    int main(void)
                    {
                        char name[30];
                        printf( "Enter your name: " );
                        scanf( "%s", name );
                
                        strcat( name, " the Great" );    //  " the Great"  常量字符串 
                        printf( "%s\n", name );
                        return 0;
                    }
            
        思路:
            找到第一个字符串末尾\0的位置,
            将第二个字符串的字符一次放入到第一个字符串的末尾,注意要覆盖'\0'
            拼接结束要加一个'\0'

        3、strcpy

        功能: 拷贝字符串 ,原因:字符串不能直接用数组名赋值
        
        当定义一个字符串空间;        
        需要对这个字符串进行整体赋值时,只能一个一个的写入,用这个函数就解决了这个问题。
        

        用法:
            char names[30];
            strcpy(&names[2],"xiaoming");//这个语句是将xiaoming这个字符串拷贝到names[2]中去
            
            printf("%s",names);
            
        思路:
            读取from位置开始的每一个字符放入到to对应的空间里面去,直到遇到from字符串里面\0位置,结束的时候要在to的后面补\0

        4、strcmp

        功能:字符串的比较  原因:字符串不能直接用数组名比较
            

                    返回值为指针to。
                        -1             str1 小于  str2
                        0              str1 等于  str2
                        1              str1 大于  str2
                
                两个字符串如何比较大小?        

        代码:
                #include<stdio.h>
                #include<string.h> 

                int main(void)
                {
                    int res = strcmp("hello","htty"); 
                    printf("%d\r\n",res);  // 由于hello这个字符串与htty这个字符串大小不一致并且hello长度长一些,所以输出-1
                    
                    int res1 = strcmp("htty","hello");
                    printf("%d\r\n",res1); // 1
                    
                    
                    int res2 = strcmp("hello","hello");
                    printf("%d\r\n",res2); // 0
                    
                    int res3 = strcmp("hello","hello world");
                    printf("%d\r\n",res3); // 在hello world中遇到空格直接结束查找,而前面的hello多一个'\0'字符,所以输出-1
                    return 0;
                }

        5、strstr

        功能:在一字符串中查找指定的子串首次出现的位置 --- 在一个字符串里面查找另外一个子串
           

     代码:

            #include<stdio.h>
            #include<string.h>

            int main(void)
            {
                char str1[] = "name:lili,age:10";
                char s1[] = "age";            
                char s2[] = "score";
                
                char *p = strstr(str1,s2);
                
                if(p == NULL)
                {
                    printf("没有找到");
                }
                else
                {
                    printf("找到了");
                }
                return 0;
            }

        6、strchr   

        功能:查找某字符在字符串中首次出现的位置 

        代码:
            #include<stdio.h>
            #include<string.h>

            int main(void)
            {
                char str1[] = "name:lili,age:10";
                char ch;
                scanf("%c",&ch);
                
                char *p = strchr(str1,ch);
                
                if(p == NULL)
                {
                    printf("没有找到");
                }
                else
                {
                    printf("找到了");
                }
                return 0;
            }

        思路:从给定的地址开始匹配字符,匹配上就可以结束了。

标签:字符,入门,C语言,char,printf,字符串,include,hello
From: https://blog.csdn.net/nobgo/article/details/141172616

相关文章

  • C语言实现斐波那契数列
    斐波那契数列(Fibonaccisequence)是一个经典的数学问题,在数学和计算机科学领域都有广泛的应用。斐波那契数列是以意大利数学家列昂纳多·斐波那契(LeonardodaFibonacci)的名字命名的,他通过兔子繁殖的例子引入了这一数列。斐波那契数列的每一项都是前两项的和,且从第三项开始,即1、......
  • 【Python使用】嘿马python基础入门全体系教程第1篇:目标,计算机组成【附代码文档】
    本教程的知识点为:计算机组成什么是计算机?计算机是由什么组成的?1.硬件系统:2.软件系统:目标运算符的分类1.算数运算符2.赋值运算符3.复合赋值运算符判断语句和循环语句if嵌套1.if嵌套的格式2.if嵌套的应用if嵌套执行流程容器:字符串、列表、元组、字典字符串......
  • UEFI Shell 的基本操作和应用场景,适合初学者了解和入门 UEFI Shell 的使用。 UEFI She
    UEFIShell是一种提供命令行接口的环境,用于与UEFI固件进行交互。UEFI(统一可扩展固件接口)是计算机启动过程中的一种固件接口,替代了传统的BIOS。UEFIShell提供了一种方式,让用户在启动操作系统之前进行系统管理和配置。主要特点命令行界面:UEFIShell提供一个类似于操作......
  • MyBatis从入门到面试:超全
    MyBatis从入门到面试MyBatis启动!!!1.引入依赖<dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.13</version><!--版本号可以根据需要进行调整--></dependency>1.配置文件首先,我们需......
  • 嵌入式软件--C语言项目 客户信息管理系统
    考虑到目前C语言的学习是以为嵌入式做基础而进行的,项目所使用到的语法和结构都是嵌入式常用到的,这是较为特殊和针对性的项目,不与其他同名项目作比较。若有参考着谨慎借鉴。实现一个客户信息管理系统,功能包括添加客户、修改客户、删除客户、显示客户列表。1.需求说明(1)主菜单......
  • 每天深解一个字符串类函数之strstr函数
    目录前言:一、引用头文件二、strstr函数的作用三、理解strstr函数的定义1、返回类型2、参数 四、使用strstr函数1、编写程序2、调试运行五、注意要点 六、模拟实现前言:每天深入了解一个字符串类函数,今天我们要学习的是strstr函数,相信你学玩之后会对字符串......
  • C语言-有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数,见 图8.43。写
    1.题目要求:有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数,见图8.43。写一函数实现以上功能,在主函数中输入n个整数和输出调整后的n个数。2.解题思路:可采用指针法,可将数组中最后一位元素的值赋给中间变量暂存,然后将剩余数组中的元素通过指针依次后移一位......
  • Deno-入门指南-全-
    Deno入门指南(全)原文:IntroducingDeno协议:CCBY-NC-SA4.0一、为什么是Deno?在过去的10年里,当后端开发人员听到“后端的JavaScript”这个词时,所有人都会立即想到Node.js。在这10年的开始,也许不会马上出现,但最终它的名字为每个人所知,成为另一种基于JavaScript的可用......
  • c语言-指针详解
    一指针变量1.1指针的概念本质上指针就是地址,我们所说的指针就是指针变量,指针变量是一个用来存放地址的指针。我们知道计算机上CPU(中央处理器)在处理数据的时候,需要的数据是在内存中读取的,处理后的数据也会放回内存中,那我们电脑上内存是8GB/16GB/32GB等,那这些内存空......
  • 2024最新最全【AIGC】学习零基础入门到精通,看完这一篇就够了!
    AIGC(AI-GeneratedContent)即人工智能生成内容,是指利用人工智能技术来创造各种形式的内容,包括文字、图像、视频、音频和游戏等。与专业生成内容(PGC)和用户生成内容(UGC)相对应,AIGC代表着内容生产方式的演进,其生产速度以指数级增长。为什么要学习AIGC?根据猎聘大数据研究院发布......