小甲鱼s1E22C语言动动手

0:

#include <stdio.h>

#define MAX 1024

int main()
{
    char str[MAX] = {};
    char *p = str;
    int i, sum = 0;
    
    printf("请输入一个字符串:");
    fgets(str, MAX, stdin); // fgets会将换行符当作合法字符读取

    for (i = 0; i < MAX; i++){
        if(*(p+i) != '\n'){
            sum++;
        } else {
            break;
        }
    }
    
    printf("您一共输入了%d个字符\n",sum);

    return 0;
}

1:

#include <stdio.h>

#define MAX 1024

int main()
{
    char str1[MAX] = {};
    char str2[MAX] = {};
    char *p = str1;
    int i, sum = 0;
    int num;
    char choose;
    
    printf("请输入一个字符串到str1中:");
    fgets(str1, MAX, stdin); // fgets会将换行符当作合法字符读取

    printf("是否使用进阶版?(y/n):");
    scanf("%c",&choose);

    if (choose == 'n'){
        for (i = 0; i < MAX; i++){
            if(*(p+i) != '\n'){
                str2[i] = *(p+i);
            } else {
                str2[i] = '\0'; //结束符也要赋值
                break;
            }
        }
    } else {
        printf("请输入需要拷贝的字符个数:");
        scanf("%d",&num);
        for (i = 0; i < num; i++){
            if(*(p+i) != '\n'){
                str2[i] = *(p+i);
            } else {
                str2[i] = *(p+i); 
                break;
            }
        }
    }

    printf("开始拷贝str1的内容到str2中...\n");
    printf("拷贝完毕!\n");
    printf("现在,str2中的内容是:%s\n",str2);
    
    return 0;
}

2:

#include <stdio.h>

#define MAX 1024

int main()
{
    char str1[MAX] = {};
    char str2[MAX] = {};
    char *p = str1;
    int i, sum = 0;
    int num;
    
    printf("请输入第一个字符串:");
    fgets(str1, MAX, stdin); // fgets会将换行符当作合法字符读取

    printf("请输入第二个字符串:");
    fgets(str2, MAX, stdin);

    for (i = 0; i < MAX; i++){
        if(*(p+i) == '\n'){
            printf("请输入需要连接的字符个数:");
            scanf("%d",&num);
            for (int j = 0; j < num; j++){
                *(p+i+j) = str2[j];
                if (str2[j] == '\n'){
                    goto FINDIT;
                }
            }
        }
    }
FINDIT:
    printf("连接后的结果是:%s\n",str1);
    return 0;
}

3:

#include <stdio.h>

#define MAX 1024

int main()
{
    char str1[MAX] = {};
    char str2[MAX] = {};
    char *p = str1;
    int i, sum = 1;
    int num;
    
    printf("请输入第一个字符串:");
    fgets(str1, MAX, stdin); // fgets会将换行符当作合法字符读取

    printf("请输入第二个字符串:");
    fgets(str2, MAX, stdin);

    printf("请输入要比对的字符个数:");
    scanf("%d",&num);
    
    for (i = 0; i < num; i++){
        if (str1[i] == str2[i]){
            sum++;
            // if (str1[i] == '\n' && str2[i]== '\n'){
            //     printf("两个字符串完全一致\n");
            // }
        } else {
            printf("两个字符串不完全相同,第%d个字符出现不同\n",sum);
            goto FINDIT;
            // break;
        }
    }

    printf("两个字符串完全一致\n");

FINDIT:
    return 0;
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GospeLLLLLL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值