【嵌入式学习】C语言基础-Day7-字符串

文章介绍了C语言中一系列字符串操作,包括atoi函数实现、字符串比较、交换、连接、拷贝、逆序以及简单选择排序,展示了基础编程技能的实践应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

思维导图

链接

作业

1.输入一个字符串自行实现atoi函数(非函数实现)

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
        char a[20];
        gets(a);

        int i=0;
        int sum=0;

        while(a[i]==' '){
                i++;
        }

        if(a[i]=='+' || a[i]=='-')
                i++;

        int j=i;

        while(a[j]!='\0'){
                if(a[j] >='0' && a[j]<='9'){
                        sum=sum*10+a[j]-48;
                }else{
                        break;
                }
                j++;
        }

        if(a[i-1]=='-')
                sum=-sum;

        printf("sum=%d\n",sum);

        return 0;
}

运行结果:
在这里插入图片描述

2.输入三个字符串计算最大值(字符串函数实现)

#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[]){
        char s1[20],s2[20],s3[20];

        gets(s1);
        gets(s2);
        gets(s3);

        char s1s2=strcmp(s1,s2);
        char s2s3=strcmp(s2,s3);
        char s1s3=strcmp(s1,s3);

        if(s1s2>0&&s1s3>0){
                puts("s1最大\n");
        }else if(s2s3>0&&s1s2<0){
                puts("s2最大\n");
        }else if(s1s3<0&&s2s3<0){
                puts("s3最大\n");
        }else{
                puts("error!");
        }


        puts(s1);
        return 0;
}

在这里插入图片描述

3.输入两个字符串,实现交换(字符串函数实现)

#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[]){
        char s1[20],s2[20],temp[20];

        gets(s1);
        gets(s2);

        strcpy(temp,s1);
        strcpy(s1,s2);
        strcpy(s2,temp);

        printf("s1=%s\n",s1);
        printf("s2=%s\n",s2);
        return 0;
}

在这里插入图片描述

4.输入两个字符串,实现字符串连接(非函数实现)

#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[]){
        char a[20],b[20];
        gets(a);
        gets(b);

        int i=0;
        while(a[i]!='\0'){
                i++;
        }

        int j=0;
        while(b[j]!='\0'){
                a[i++]=b[j++];
        }

        a[i]='\0';

        puts(a);


        return 0;
}

在这里插入图片描述

5.输入两个字符串实现字符串拷贝(非函数实现)

#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[]){
        char a[20],b[20],temp[20];
        gets(a);
        gets(b);

		int i=0;
        for (i = 0 ; a[i]!='\0' ; i++){
                a[i]=b[i];
        }
		a[i]='\n';
        puts(a);
        puts(b);

        return 0;
}

在这里插入图片描述

6.输入一个字符串实现字符串逆置

#include <stdio.h>

int main(int argc, const char *argv[]){
        char a[20],b[20],temp[20];

        gets(a);

        size_t len=0;
        for (int i = 0; a[i]!='\0' ; i++) {
                temp[i]=a[i];
                len++;
        }
        temp[len]='\0';
        puts(temp);
        for (int i = 0; temp[i]!='\0' ; i++) {
                a[i]=temp[len-i-1];
        }

        puts(a);

        return 0;
}

在这里插入图片描述

7.输入一个字符串,对每一个字符实现简单选择排序

#include <stdio.h>

int main(int argc, const char *argv[]){
        char a[20],b[20],temp[20];

        gets(a);

        size_t len=0;
        for (int i = 0; a[i]!='\0' ; i++) {
                temp[i]=a[i];
                len++;
        }
        temp[len]='\0';
        puts(temp);
        for (int i = 0; temp[i]!='\0' ; i++) {
                a[i]=temp[len-i-1];
        }

        puts(a);

        return 0;
}

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值