注册 登录
编程论坛 C语言论坛

用c语言表示字符串连接

小人儿 发布于 2019-11-19 19:43, 1500 次点击
编写程序,从键盘输入两个字符串,并将两个字符串连接起来,连接的结果放入第一个字符串中,并输出到屏幕。不能使用strlen()和strcat()函数。
提示:
1.    字符串输入到字符数组中储存,假设字符数组分别为str1和str2;
2.    输入带空格字符串,应使用(填空)函数。
3.    首先使用循环计算str1的长度,接着在str1‘\0’处开始复制str2的内容,遇到‘\0’结束,但是,不能忘了新字符串末尾补充‘\0’;
4.    如果str1字符数组长度不够,要输出错误提示。
谢谢大神们了! 本人C语言初学者 可不可以用一些简单的函数。
2 回复
#2
rjsp2019-11-20 09:19
3.    首先使用循环计算str1的长度,接着在str1‘\0’处开始复制str2的内容,遇到‘\0’结束,但是,不能忘了新字符串末尾补充‘\0’;
4.    如果str1字符数组长度不够,要输出错误提示。

程序代码:
#include <stdio.h>

char* mystrcat( char* restrict dest, size_t destsize, const char* restrict src )
{
    char* p = dest;
    for( ; *p; ++p );

    for( ; p<dest+destsize-1 && *src; )
        *p++ = *src++;
    *p = '\0';

    return *src ? NULL : dest;
}

int main( void )
{
    {
        char a[9] = "abc";
        char b[] = "12345";
        if( mystrcat(a,sizeof a,b) )
            printf( "结果是: %s\n", a );
        else
            puts( "空间不足" );
    }

    {
        char a[8] = "abc";
        char b[] = "12345";
        if( mystrcat(a,sizeof a,b) )
            printf( "结果是: %s\n", a );
        else
            puts( "空间不足" );
    }
}

#3
小人儿2019-11-21 19:17
回复 2楼 rjsp
好多看不懂能不能简化一些
1