PTA 字符串的连接

本题要求实现一个函数,将两个字符串连接起来。
函数接口定义:
char *str_cat( char *s, char *t );

函数str_cat应将字符串t复制到字符串s的末端,并且返回字符串s的首地址。
裁判测试程序样例:
#include <stdio.h>
#include <string.h>

#define MAXS 10

char *str_cat( char *s, char *t );

int main()
{

char *p; char str1[MAXS+MAXS] = {’\0’}, str2[MAXS] = {’\0’};

scanf("%s%s", str1, str2);
p = str_cat(str1, str2);
printf("%s\n%s\n", p, str1);

return 0;

}

/* 你的代码将被嵌在这里 */

输入样例:
abc
def

输出样例:
abcdef
abcdef

 char *str_cat( char *s, char *t ) 
 {   
    int i , j;
 
    for( i=0;*(s+i)!='\0';i++)
    
    { 	
    *(s+i)=*(s+i); 	
    }
    
    for(  j=0;*(t+j)!='\0';j++)
    {
    *(s+i+j)=*(t+j);
    }
    
    *(s+i+j)='\0';
    
    return s ;
 }




好的,根据您的要求,以下是一个字符串连接的函数实现: ``` #include <stdio.h> #include <string.h> char* strconnect(char* str1, char* str2) { int len1 = strlen(str1); int len2 = strlen(str2); char* result = (char*)malloc(sizeof(char) * (len1 + len2 + 1)); // 为新的字符串分配内存空间 if (result == NULL) { return NULL; // 内存分配失败,返回空指针 } strcpy(result, str1); // 将第一个字符串拷贝到新的字符串中 strcat(result, str2); // 将第二个字符串连接到新的字符串中 return result; } int main() { char str1[] = "Hello, "; char str2[] = "world!"; char* result = strconnect(str1, str2); if (result == NULL) { printf("Failed to allocate memory.\n"); return 1; } printf("%s\n", result); free(result); // 释放内存空间 return 0; } ``` 这个函数使用了C标准库中的函数`strlen`、`malloc`、`strcpy`和`strcat`。函数的参数为两个字符串指针,返回值为新的字符串指针。 函数首先计算了两个字符串的长度,然后根据总长度为新的字符串分配了内存空间。如果内存分配失败,则返回空指针NULL。否则,将第一个字符串拷贝到新的字符串中,然后将第二个字符串连接到新的字符串后面,并返回新的字符串指针。 在主函数中,我们定义了两个字符串`str1`和`str2`,调用了`strconnect`函数将它们连接起来,并打印了结果。需要注意的是,在使用完新的字符串后,需要使用`free`函数释放分配的内存空间,避免内存泄漏。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值