首页后端开发ASP.NET一文聊聊C语言中的字符串操作(大小写转换、比较、排序等)

一文聊聊C语言中的字符串操作(大小写转换、比较、排序等)

时间2024-02-01 03:46:03发布访客分类ASP.NET浏览621
导读:收集整理的这篇文章主要介绍了一文聊聊C语言中的字符串操作(大小写转换、比较、排序等),觉得挺不错的,现在分享给大家,也给大家做个参考。字符串是 c语言 程序中经常处理的对象之一,下面本篇文章就来带大家聊聊C语言中的字符串处理,了解一些字符串...
收集整理的这篇文章主要介绍了一文聊聊C语言中的字符串操作(大小写转换、比较、排序等),觉得挺不错的,现在分享给大家,也给大家做个参考。字符串是 c语言 程序中经常处理的对象之一,下面本篇文章就来带大家聊聊C语言中的字符串处理,了解一些字符串操作函数,希望对大家有所帮助!

字符串在C语言里使用非常多,因为很多数据处理都是文本,也就是字符串,特别是设备交互、web网页交互返回的几乎都是文本数据。

字符串本身属于字符数组、只不过和字符数组区别是,字符串结尾有’\0’。 字符串因为规定结尾有'\0',在计算长度、拷贝、查找、拼接操作都很方便。

1. 字符串的定义

char buff[]="我是一个字符串";
    char a[]="1234567890";
    char b[]="abc";
char c[]={
'a','b','c','\0'}
    ;
    

在普通的字符数组结尾加一个 \0 就变成了字符串。

2. 处理字符串里字母大小写

将字符串里所有大写字母全部换成小写字母。或者小写字母全部换成大写字母。可以通过形参进行区分。

#include stdio.h>
    #include string.h>
    #include stdlib.h>
    void func(char *str,int flag);
int main(){
        char buff[100];
        PRintf("从键盘上输入字符串:");
        scanf("%s",buff);
        printf("源字符串:%s\n",buff);
        func(buff,0);
        printf("大写转换小写:%s\n",buff);
        func(buff,1);
        printf("小写转大写:%s\n",buff);
        return 0;
}
//函数功能: 大写小写转换//flag=0表示大写转换小写  =1表示小写转大写void func(char *str,int flag){
        int data;
    while(*str!='\0')    {
        if(flag)        {
                if(*str>
    ='a'&
    &
 *str='z') //小写            {
                    *str=*str-32;
            }
        }
        else        {
                if(*str>
    ='A'&
    &
 *str='Z') //小写            {
                    *str=*str+32;
            }
        }
            str++;
    }
}
    

3. 从键盘上录入2个字符串,判断是否相等

#include stdio.h>
int main(){
        char str1[100];
        char str2[100];
        int i=0;
        /*1. 录入数据*/    printf("输入字符串1:");
        scanf("%s",str1);
        printf("输入字符串2:");
        scanf("%s",str2);
    /*2. 比较字符串*/    while(str1[i]!='\0'||str2[i]!='\0')    {
            if(str1[i]!=str2[i])break;
            i++;
    }
        if(str1[i]=='\0'&
    &
str2[i]=='\0')    {
            printf("字符串相等.\n");
    }
    else    {
            printf("字符串不相等.\n");
    }
        return 0;
}
    

4. 从键盘上录入一个字符串,按照小到大的顺序排序

#include stdio.h>
    #include string.h>
int main(){
        char str1[100];
        int len=0;
        int i,j;
        int tmp;
        printf("输入要排序的字符串:");
        scanf("%s",str1);
        len=strlen(str1);
        //开始排序    for(i=0;
    ilen-1;
i++)    {
            for(j=0;
    jlen-1-i;
j++)        {
                if(str1[j]>
str1[j+1])            {
                    tmp=str1[j];
                    str1[j]=str1[j+1];
                    str1[j+1]=tmp;
            }
        }
    }
        printf("排序之后的字符串:%s\n",str1);
        return 0;
}
    

5. 从键盘上输入一个字符串,转为整数输出

#include stdio.h>
    #include string.h>
int main(){
        //"123"    char str[100];
        int data=0;
        int i=0;
        printf("从键盘上输入字符串:");
        scanf("%s",str);
    while(str[i]!='\0')    {
            data*=10;
    //data=0 data=10 data=120        data+=str[i]-'0';
    //data=1 data=12 data=123        i++;
    }
        printf("data=%d\n",data);
        return 0;
}
    

6. 字符串删除

从键盘上录入一个字符串,删除字符串里指定的单词,输出结果。

比如:原字符串 ”akjbcds123DFjvbF123fdvbfd123”

删除单词:“123”

输出的结果:”akjbcdsdfjvbffdvbfd”

#include stdio.h>
    #include string.h>
int main(){
        char str1[100];
        char str2[100];
        int i=0,j=0;
        int str2_len=0;
        /*1. 录入数据*/    printf("输入源字符串:");
        scanf("%s",str1);
        printf("输入要删除的字符串:");
        scanf("%s",str2);
        /*2. 计算要删除字符串的长度*/    str2_len=strlen(str2);
                        /*3. 查找字符串*/    for(i=0;
    str1[i]!='\0';
i++)    {
            //比较字符串        for(j=0;
    str2[j]!='\0';
j++)        {
                if(str1[i+j]!=str2[j])break;
        }
        if(str2[j]=='\0')        {
                //4. 删除字符串---后面向前面覆盖            for(j=i;
    str1[j]!='\0';
j++)            {
                    str1[j]=str1[j+str2_len];
            }
                str1[j]='\0';
                i--;
        }
    }
        //5. 输出结果    printf("str1=%s\n",str1);
        return 0;
}
    

7. 字符串插入

从键盘上录入一个字符串,从指定位置插入一个字符串,再输出结果。

比如:原字符串“1234567890”

(1). 从指定位置插入新的单词。 比如 从第2个下标插入一个“ABC”字符串。

结果: “123ABC4567890”

#include stdio.h>
    #include string.h>
int main(){
        char str1[100];
        char str2[100];
        int addr=0;
        int str1_len;
        int str2_len;
        int i;
        /*1. 录入数据*/    printf("录入源字符串:");
        scanf("%s",str1);
        printf("录入要插入的字符串:");
        scanf("%s",str2);
        printf("输入要插入的下标位置:");
        scanf("%d",&
    addr);
        str1_len=strlen(str1);
     //3    str2_len=strlen(str2);
     //2        /*2. 完成插入*/    //完成数据移动    for(i=str1_len-1;
    i>
    =addr;
i--)    {
            str1[i+str2_len]=str1[i];
    }
        //数据替换    for(i=0;
    istr2_len;
i++)    {
            str1[i+addr]=str2[i];
    }
        str1[str1_len+str2_len]='\0';
        /*3. 输出数据*/    printf("str1=%s\n",str1);
        return 0;
}
    

8. 字符串替换

从键盘上录入一个字符串,将指定单词替换成想要的单词。

比如:原字符串“123jfvfdj123dkfvbfDVDf”

想要将“123”替换成“888”或者“8888”或者“88”

#include stdio.h>
    #include string.h>
int main(){
        char str1[100];
        char str2[100];
        char str3[100];
        int str1_len=0;
        int str2_len=0;
        int str3_len=0;
        int i,j;
        int cnt=0;
        /*1.准备数据*/    printf("输入源字符串:");
        scanf("%s",str1);
        printf("输入查找的字符串:");
        scanf("%s",str2);
        printf("输入替换的字符串:");
        scanf("%s",str3);
        /*2. 计算长度*/    str1_len=strlen(str1);
        str2_len=strlen(str2);
        str3_len=strlen(str3);
        /*3. 字符串替换*/    for(i=0;
    istr1_len;
i++)    {
            //查找字符串        for(j=0;
    jstr2_len;
j++)        {
                if(str1[i+j]!=str2[j])break;
        }
        //如果查找成功就进行替换        if(j==str2_len)        {
                //总长度变短了            if(str2_len>
str3_len)            {
                    cnt=str2_len-str3_len;
     //差值                //完成数据向前移动--覆盖                for(j=i+str2_len-cnt;
    jstr1_len;
j++)                {
                        str1[j]=str1[j+cnt];
                }
                    str1[str1_len-cnt]='\0';
            }
            //总长度变长了            else if(str2_lenstr3_len)            {
                    cnt=str3_len-str2_len;
     //差值                //完成数据向后移动                for(j=str1_len;
    j>
    =i+str2_len;
j--)                {
                        str1[j+cnt]=str1[j];
                }
                    str1[str1_len+cnt]='\0';
            }
                //替换            for(j=0;
    jstr3_len;
j++)            {
                    str1[i+j]=str3[j];
            }
                //重新计算长度            str1_len=strlen(str1);
        }
    }
        /*4. 完成字符串打印*/    printf("str1=%s\n",str1);
        return 0;
}
    

相关推荐:《C视频教程》

以上就是一文聊聊C语言中的字符串操作(大小写转换、比较、排序等)的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

上一篇: c语言怎么求字符串的长度并输出下一篇:分享一道逻辑面试题看看你能答...猜你在找的ASP.NET相关文章 C# 一些面试试题的实例教程2022-05-16.NET 6开发TodoList应用之请求日志组件HttpLogging介绍2022-04-16.NET 6中间件Http Logging使用介绍2022-04-16gojs一些实用的高级用法2022-04-16.NET6开发TodoList应用之实现查询排序2022-04-16.NET6开发TodoList应用之实现数据塑形2022-04-16.NET微服务架构CI/CD自动打包镜像2022-04-16Asp.Net Core 使用Monaco Editor 实现代码编辑器功能2022-04-16.NET微服务架构CI/CD自动构建Jenkins+Gitee2022-04-16.Net Core微服务网关Ocelot集成Consul2022-04-16 其他相关热搜词更多phpjavapython程序员load

若转载请注明出处: 一文聊聊C语言中的字符串操作(大小写转换、比较、排序等)
本文地址: https://pptw.com/jishu/594878.html
c语言中保留两位小数怎么表示 html+css+js实现canvas跟随鼠标的小圆特效源码

游客 回复需填写必要信息