C语言OJ项目参考(1052)两个字符串连接

1052: 两个字符串连接

Description
写一函数,将两个字符串连接
Input
两行字符串
Output
链接后的字符串
Sample Input**
123
abc
Sample Output
123abc

参考解答:
函数版参考1:

#include<stdio.h>
void stringcat(char *s1, char *s2, char *s);
int main()
{
    char str1[100],str2[100],str3[100];
    gets(str1);
    gets(str2);
    stringcat(str1,str2,str3);
    puts(str3);
    return 0;
}

void stringcat(char *s1, char *s2, char *s)
{
    int i=0,j=0;
    while(s1[i]!='\0')
    {
        s[i]=s1[i];
        i++;
    }

    while(s2[j]!='\0')
    {
        s[i+j]=s2[j];
        j++;
    }
    s[i+j]='\0';
}

函数版参考2:

#include<stdio.h>
char *stringcat(char *s1, char *s2);
int main()
{
    char str1[100],str2[100],*str3;
    gets(str1);
    gets(str2);
    str3=stringcat(str1,str2);
    puts(str3); //不用str3,直接输出str1也行,这个方案将连接结果放在str1中了
    return 0;
}

char *stringcat(char *s1, char *s2)
{
    int i=0,j=0;
    while(s1[i]!='\0')
    {
        i++;
    }

    while(s2[j]!='\0')
    {
        s1[i+j]=s2[j];
        j++;
    }
    s1[i+j]='\0';
    return s1;
}

非函数版解决方案:

#include<stdio.h>
int main()
{
    char str1[100],str2[100],str3[100];
    gets(str1);
    gets(str2);
    int i=0,j=0;
    while(str1[i]!='\0')
    {
        str3[i]=str1[i];
        i++;
    }

    while(str2[j]!='\0')
    {
        str3[i+j]=str2[j];
        j++;
    }
    str3[i+j]='\0';
    puts(str3);
    return 0;
}
时间: 2025-01-27 21:47:30

C语言OJ项目参考(1052)两个字符串连接的相关文章

C语言OJ项目参考(2274)字符串插入

2274: 字符串插入 Description 将字符串t插入到字符串s中,在位置pos后插入.不得使用字符串操作函数,输出组合成的字符串. Input 输入两个字符串(t和s)和要插入的位置(pos) Output 输出组合后的字符串 Sample Input** qwe jij 3 Sample Output jijqwe 参考解答: #include<stdio.h> int main() { char t[100],s[100],r[200]; int pos,i=0,j=0; get

C语言OJ项目参考(2424)字符串比较

2424: 字符串比较 Description 写一函数,实现两个字符串的比较.即自己写一个strcmp函数,函数原型为 int stringcmp(char *p1,char *p2); 设p1指向字符串s1,p2指向字符串s2.要求当s1=s2时,返回值为0,若s1≠s2,返回它们二者第1个不同字符的ASCII码差值(如"BOY"与"BAD",第2个字母不同,"O"与"A"之差为79-65=14).如果s1>s2,则

C语言OJ项目参考(1056)输出已交换后的两个值

1056: (用宏)输出已交换后的两个值 Description 定义一个带参的宏(或者模板函数),带有三个参数,第一个参数为类型,后两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参.输出已交换后的两个值. Input 两个短整型数,空格隔开 两个小数,空格隔开 两个长整数,空格隔开 Outputt 交换后的两个数,空格隔开 Sample Input 1 2 1.5 2.5 65535 2147483647 Sample Outputt 2 1 2.5 1.5 2147483647 6

C语言OJ项目参考(1047) 最大公约数和最小公倍数

1047: 求两个整数的最大公约数和最小公倍数 Description 写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入. Input 两个数 Output 最大公约数 最小公倍数 Sample Input 6 15 Sample Output 3 30 HINT 主函数已给定如下,提交时不需要包含下述主函数 /* C代码 */ int main() { int n,m,gys,gbs; int gcd(int a, int b); int

C语言OJ项目参考(2963) 判断三角形

2963: 判断三角形 Description 娄月的妹妹刘月是个初中生,某天回来兴高采烈的回家告诉姐姐他学会了如何凭借三角形三边判断三角形的形状(设两条短边为啊a,b;长边为c,判断a*a+b*b和c*c的关系),于是娄月告诉刘月,给她三条边,她可以在一秒之内知道三角形是直角,钝角还是锐角三角形,当然,这么快只有编程才能做到.以下是娄月编写的程序,由于忘记了一些知识点,三个判断三角形的函数无法完成,于是 只能请聪明的你帮忙喽. #include <stdio.h> #define swap(

C语言OJ项目参考(2681)求三角形面积

(2681)求三角形面积 Description 输入三条边的长度,如果这三条边能构成三角形,则需要计算三角形面积,如果不能构成三角形则输出提示信息 "error input".输出的面积按两位小数方式输出 Input 三条边的长度 Output 如果这三条边能构成三角形,则输出该三角形面积,如果这三条边不能构成三角形,则输出提示信息"error input" Sample Input 3.3 4.4 5.5 Sample Output area=7.26 [参考解

C语言OJ项目参考(1923) ASCII码排序

(1923) ASCII码排序 Description 输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符. Input 输入数据有多组,每组占一行,有三个字符组成,之间无空格. Output 对于每组输入数据,输出一行,字符中间用一个空格分开. Sample Input qwe asd zxc Sample Output e q w a d s c x z [参考解答] #include<stdio.h> int main() { char a,b,c,t; int inpu

C语言OJ项目参考(2000)数组逆序

Description 输入10个整数存入一维数组,按逆序重新存放后再输出. Input 输入包括一行.10个以空格隔开的整数. Output 逆序的10个整数,整数以空格隔开. Sample Input 1 3 5 9 7 6 8 2 4 0 Sample Output 0 4 2 8 6 7 9 5 3 1 提示:在OJ平台中,将有一个格式错误可能会让你崩溃.友情提示:输出的最后一个数字后面没有空格. 参考解答: #include <stdio.h> int main() { int a[

C语言OJ项目参考(2966) 循环画三角形

2966: 循环画三角形 Description 前几天,老师让良哥做一个画空心三角形的程序来取悦小师妹,可把良哥愁死了,C语言基础学得再扎实,算法不精也是硬伤呀!于是良哥又写好了主程序来找机前的你帮忙了^_^ #include <stdio.h> void holl_triangle(int n); /*函数声明*/ int main() { int n; scanf("%d",&n); /*输入行数n*/ holl_triangle(n); /*调用输入n行的空