编写算法实现字符串str1和str2的比较操作,要求比较结果包括大于、小于或等于三种情况

编写算法实现字符串str1和str2的比较操作,要求比较结果包括大于、小于或等于三种情况


题目分析:

咱们看看字符串的比较(一),题目区别不大,要求输出三种结果,思路我就不再赘述了,直接上代码

代码实现:

#include<stdio.h>
#include<stdlib.h>
/*字符串比较函数,相同返0,str1>str2返1,否则返-1*/
int strcompare(char str1[], char str2[])
{
    int size1 = 0, size2 = 0;             //用来累计字符ascll码之和
    for (int i = 0; str1[i] != '\0'; i++)
        size1 += (int)str1[i];            //加上字符的(int)即ascll码
    for (int i = 0; str2[i] != '\0'; i++)
        size2 += (int)str2[i];
    if (size1 == size2)                   //字符串大小一样
        return 0;
    else if (size1 > size2)
        return 1;
    else
        return -1;
}
int main()
{
    char str1[] = "aseff";
    char str2[] = "assff";
    char str3[] = "aesff";
    if (strcompare(str1, str2)==0)         //比较str1和str2
        printf("%s和%s相同!\n",str1,str2);
    else if(strcompare(str1,str2)==-1)
        printf("%s小于%s\n", str1, str2);
    else
        printf("%s大于%s\n", str1, str2);
    if (strcompare(str1, str3) == 0)         //比较str1和str3
        printf("%s和%s相同!\n", str1, str3);
    else if (strcompare(str1, str3) == -1)
        printf("%s小于%s\n", str1, str3);
    else
        printf("%s大于%s\n", str1, str3);
    system("pause");
    return 0;
}

运行结果:


img



代码编译器:Visual Studio 2017
ok,再见

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是 C 语言实现字符串的基本操作的代码: #include<stdio.h> #include<string.h> int main() { char str1[100], str2[100]; int len, cmp, pos; printf("请输入字符串1:\n"); scanf("%s", str1); printf("请输入字符串2:\n"); scanf("%s", str2); // 求串长 len = strlen(str1); printf("字符串1的长度为:%d\n", len); // 赋值 strcpy(str1, str2); printf("字符串1的内容为:%s\n", str1); // 比较 cmp = strcmp(str1, str2); if(cmp == 0) { printf("字符串1与字符串2相等\n"); } else if(cmp < 0) { printf("字符串1小于字符串2\n"); } else { printf("字符串1大于字符串2\n"); } // 串连接 strcat(str1, str2); printf("字符串1与字符串2连接后的内容为:%s\n", str1); // 求子串 printf("请输入要查找的子串:\n"); scanf("%s", str2); char *sub = strstr(str1, str2); if(sub != NULL) { printf("子串在字符串1中的位置为:%d\n", sub - str1); } else { printf("子串不存在\n"); } // 替换 printf("请输入要替换的子串:\n"); scanf("%s", str2); printf("请输入要替换成的字符串:\n"); scanf("%s", sub); sub = strstr(str1, str2); if(sub != NULL) { memcpy(sub, str2, strlen(str2)); printf("替换后的字符串为:%s\n", str1); } else { printf("子串不存在\n"); } // 定位算法 printf("请输入要查找字符的位置:\n"); scanf("%s", str2); char *loc = strchr(str1, str2[0]); if(loc != NULL) { printf("字符在字符串1中的位置为:%d\n", loc - str1); } else { printf("字符不存在\n"); } return 0; } 注意,这里的字符串操作都是使用库函数实现的,因此需要在代码开头添加 #include<string.h>。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值