社区讨论

跪求c语言大佬

P5734【深基6.例6】文字处理软件参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@mj8rxfqs
此快照首次捕获于
2025/12/17 00:05
3 个月前
此快照最后确认于
2025/12/19 23:30
3 个月前
查看原帖
C
#include<stdio.h>
void type1(char origin[],char str[]);
void type2(char origin[],int signA,int signB);
void type3(char origin[],int signA,char str[]);
void type4(char origin[],char str[]);

int main()
{
    int q;
    scanf("%d",&q);
    char str0[10001];
    scanf("%s",str0);
    int type,a,b;
    char str[10001];
    for(int i=0;i<q;i++){
        scanf("%d",&type);
        switch(type){
            case 1:{
                scanf("%s",str);
                type1(str0,str);
                printf("%s\n",str0);
                break;
            }
            case 2:{
                scanf("%d %d",&a,&b);
                type2(str0,a,b);
                printf("%s\n",str0);
                break;
            }
            case 3:{
                scanf("%d %s",&a,str);
                type3(str0,a,str);
                printf("%s\n",str0);
                break;
            }
            case 4:{
                scanf("%s",str);
                type4(str0,str);
                break;
            }
        }
        type=0;
        a=0;
        b=0;
        int j=0;
        while(str[j]!='\0'){
            str[j]='\0';
            j++;
        }
    }
}

void type1(char origin[],char str[])
{
    int sign=0,i=0;
    while(origin[sign]!='\0'){
        sign++;
    }
    while(str[i]!='\0'){
        origin[sign]=str[i];
        i++;
        sign++;
    }
}

void type2(char origin[],int signA,int b)
{
    char strSign[b+10];
    int i=0;
    for(int k=signA;k<=signA+b+1;k++){
        if(k==signA+b+1){
            strSign[i]='\0';
        }
        else{
            strSign[i]=origin[k];
            i++;
        }
    }
    int s=0;
    while(origin[s]!='\0'){
        origin[s]='\0';
        s++;
    }
    int si=0;
    while(strSign[si]!='\0'){
        origin[si]=strSign[si];
        si++;
    }
}

void type3(char origin[],int signA,char str[])
{
    int i=0;
    while(origin[i]!='\0'){
        i++;
    }
    char afterSignA[i-signA+10];
    int k=signA;
    while(origin[k]!='\0'){
        afterSignA[k-signA]=origin[k];
        origin[k]='\0';
        k++;
    }
    afterSignA[k-signA]='\0';
    type1(origin,str);
    type1(origin,afterSignA);
}

void type4(char origin[],char str[])
{
    int i=0;
    int loc=-1;
    while(origin[i]!='\0'){
        if(origin[i]==str[0]){
            int j=0;
            while(str[j]!='\0'){
                if(origin[i+j]!=str[j]){
                    goto nextCircle;
                }
                else{
                    j++;
                }
            }
            loc=i;
            break;
        }
        nextCircle:
        i++;
    }
    printf("%d",loc);
}
写了半天的代码过不了QAQ 大佬,捞捞QAQ~~~

回复

0 条回复,欢迎继续交流。

正在加载回复...