• [山东科技大学OJ]1214 Problem B: 编写函数:字符串的连接 之二 (Append Code)


     

    Time Limit: 1 Sec  Memory Limit: 2 MB
    Submit: 9355  Solved: 4200
    [Submit][Status]

    Description

     将输入的两个字符串连接在一起输出。

    -----------------------------------------------------------------------------

    编写一个函数str_cat()求两个串的连接:

    原型:char * str_cat(char * t, char * s, int n);

    功能:把串s的前n个字符连接到串t之后,返回值是串t。如果串s的字符个数不足n个,则全部复制过去。

    函数的调用格式见“Append Code”。

    -----------------------------------------------------------------------------

    Invalid Word(禁用单词)错误:在解决这个题目时,某些关键词是不允许被使用的。如果提交的程序中包含了下列的关键词之一,就会产生这个错误。

    被禁用的头文件:string.h、stdlib.h。
    被禁用的库函数:strcat()、strncat()、memcat()、strcpy()、strncpy()、memcpy()等。

    Input

     输入为多组,每组包括三行。第一行为一个整数n,第二行为一个字符串s,第三行为字符串str。s、str的字符总数均不超过100个。

    Output

     把串s的前n个字符连接到串str之后,输出串str。

    输出两遍,一遍是测试返回值,一遍是测试str。

    Sample Input

    5 Look! I love china!

    Sample Output

    I love china! Look I love china! Look

    HINT

     

     str_cat()的返回值参考标准库函数strcpy()、strcat()、strchr()的设计思路:返回指向目标串的指针。

     

    Append Code

    append.c,

    [Submit][Status]


    #include

    #define MAX_STR_LEN 105

    char * str_cat(char * t, char * s, int n)

    {

        int i,j,g,h=0;

        for(i=0;i

        {

            if(s[i]==0)

                break;

        }

        for(j=0;j

        {

            if(t[j]==0)

                break;

        }

        if(i<=n)

        {

            for(g=j;g

            {

                t[g]=s[h];

                t[g+1]='\0';

                h++;

            }

            return t;

        }

        else

        {

            for(g=j;g

            {

                t[g]=s[h];

                t[g+1]='\0';

                h++;

            }

            return t;

        }

    }

     

     

    int main()

    {

        int n;

        char s[MAX_STR_LEN], str[MAX_STR_LEN], *p;

        while(scanf("%d", &n) != EOF && getchar())

        {

            gets(s);

            gets(str);

            p = str_cat(str, s, n);

            puts(p);

            puts(str);

        }

        return 0;

    }

  • 相关阅读:
    three.js 按键W前进、S退后、A左转、D右转运动
    使用Systemctl启动nginx失败,端口权限不足问题解决方案
    Vue项目实战之人力资源平台系统(三)主页模块
    java并发编程看这一篇就够了
    文心一言 VS 讯飞星火 VS chatgpt (110)-- 算法导论10.2 1题
    《最新出炉》系列初窥篇-Python+Playwright自动化测试-24-处理单选和多选按钮-上篇
    软件测试/测试开发丨Web自动化 PageObject设计模式
    ADG 如何配置Fast Start Failover FSFO
    CDA Level1——2.数据结构
    cocoeval 解析
  • 原文地址:https://blog.csdn.net/m0_73840805/article/details/128141880