day6 不能用指针的情况下复刻strcpy和strcmp,对取相反数的一些尝试

本文介绍了C语言中strcpy和strcmp函数的使用,以及如何通过getchar获取用户输入并在字符串中计数特定字符。同时提到了处理字符串比较时取反符号问题的方法。
摘要由CSDN通过智能技术生成

1strcpy

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
    char str[32]="";
    printf("请输入一个字符串>>");
    gets(str);
    char str2[32]="";
    for(int i=0;i<strlen(str);i++){
        str2[i]=str[i];
    }
    puts(str2);

    return 0;
}
结果显示:

2.strcmp

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
    char str[32]={0};
    char str2[32]={0};
    printf("请输入第一个字符串>>");
    gets(str);
    printf("请输入第二个字符串>>");
    gets(str2);
    int flags=0;
    int len=(strlen(str)>strlen(str2))?strlen(str2):strlen(str);
    for(int i=0;i<=len;i++){
        if(str[i]!=str2[i]){
            flags=str[i]-str2[i];
            break;
        }
    }
    if(flags>0){
        printf("字符串1比字符串2大了:%d\n",flags);
    }else if(flags<0){
        printf("字符串2比字符串1大了:%d\n",0-flags);
    }else{
        printf("字符串1等于字符串2\n");
    }


    return 0;
}

tips:相反数

这里这个取flags的相反数难住了我,我试了~,但flags是有符号的,在他为负数时计算机内实际上是补码,取反是得不到想要的结果的,最后我试了:0-flags,原来如此简单

结果:

3.终端输入一个字符串再输入一个字符看在字符串里有几个这个字符

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
    char str[32]={0};
    char c=0;
    int count=0;
    printf("请输入一个字符串:");
    scanf("%s",str);
    getchar();
    printf("请输入要计数的字符:");
    c=getchar();
    for(int i=0;i<strlen(str);i++){
        if(c==str[i])count++;
    }
    printf("有%d个字符%c\n",count,c);
    return 0;
}


结果:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值