c语言蒟蒻求助

P5734 【深基6.例6】文字处理软件

yuanminQAQ @ 2024-11-14 12:03:10

#include<stdio.h>
#include<string.h>
//插入字符的函数
void insertString(char *str, int pos,  char *s) {
    int len = strlen(str);
    int slen = strlen(s);
    // 从后往前移动
    for(int i = len; i >= pos; i--) {
        str[i+slen] = str[i];
    }
    // 插入新字符串
    for(int i = 0; i < slen; i++) {
        str[pos+i] = s[i];
    }
}

int main(void)
{
    int n;
    scanf("%d",&n);
    char str[1000],temp[1000];
    char result[110][1000];
    int tempa,tempb;
    scanf("%s",str);
    int method;
    char *loc;
    int final;
    for(int i = 0 ; i < n ; i ++)
    {
        scanf("%d",&method);
        if(method == 1)
        {
            scanf("%s",temp);
            strcat(str,temp);
            strncpy(result[i],str,strlen(str)+1);
            printf("%s\n",str);
        }
        else if(method == 2)
        {
            scanf("%d %d",&tempa,&tempb);
            strncpy(str,str+tempa,tempb);
            str[tempb] = '\0';
            strncpy(result[i],str,strlen(str)+1);

        }
        else if(method == 3)
        {
            scanf("%d",&tempa);
            scanf("%s",temp);
            insertString(str, tempa,  temp);
            strncpy(result[i],str,strlen(str)+1);
        }
        else if(method == 4)
        {
            scanf("%s",temp);
            loc = strstr(str,temp);
            if(loc  == NULL)
            {
                final = -1;
            }
            else{
                final = loc - str;
            }
            sprintf(result[i], "%d", final);
        }
    }
    for(int i = 0 ; i < n ; i ++)
    {
        printf("%s\n",result[i]);
    }
}

|