c语言题:关于字符串连接
编写一个函数StrCatenate,输入两个字符串,将第二个字符串与第一个字符串连接,连接后结果由第一个字符串返回。...
编写一个函数StrCatenate ,输入两个字符串,将第二个字符串与第一个字符串连接,连接后结果由第一个字符串返回。
展开
展开全部
系统string.h头文件包含了一个字符串连接函数
strcat()
所以很方便
#include <stdio.h>
#include <string.h>
void strcatenate (char t[], char s[] )
{
strcat(t,s);
}
void main()
{
char str1[30], str2[30];
printf ("输入第一个字符串: \n");
gets (str1);
printf ("输入第二个字符串: \n");
gets (str2);
strcatenate (str1, str2);
puts (str1);
}
strcat()
所以很方便
#include <stdio.h>
#include <string.h>
void strcatenate (char t[], char s[] )
{
strcat(t,s);
}
void main()
{
char str1[30], str2[30];
printf ("输入第一个字符串: \n");
gets (str1);
printf ("输入第二个字符串: \n");
gets (str2);
strcatenate (str1, str2);
puts (str1);
}
展开全部
#include <stdio.h>
#include <malloc.h>
char *str_cat(const char *str1, const char *str2);
int main(){
char *str1 = "abc";
char *str2 = "def";
char *cat = str_cat(str1, str2);
printf("[%s] + [%s] = [%s]\n", str1, str2, cat);
free(cat); //释放内存
return 0;
}
char *str_cat(const char *str1, const char *str2){
int len1 = 0;
int len2 = 0;
for (len1 = 0; *(str1+len1) != '\0'; len1++){} //获取str1长度
for (len2 = 0; *(str2+len2) != '\0'; len2++){} //获取str2长度
char *ret = (char *)malloc(sizeof(char)*(len1+len2+1)); //申请动态空间
/*内存赋值*/
int i;
for (i=0; i<len1; i++){
*(ret+i) = *(str1+i);
}
for (i=0; i<len2; i++){
*(ret+len1+i) = *(str2+i);
}
*(ret+len1+len2) = '\0';
return ret;
}
#include <malloc.h>
char *str_cat(const char *str1, const char *str2);
int main(){
char *str1 = "abc";
char *str2 = "def";
char *cat = str_cat(str1, str2);
printf("[%s] + [%s] = [%s]\n", str1, str2, cat);
free(cat); //释放内存
return 0;
}
char *str_cat(const char *str1, const char *str2){
int len1 = 0;
int len2 = 0;
for (len1 = 0; *(str1+len1) != '\0'; len1++){} //获取str1长度
for (len2 = 0; *(str2+len2) != '\0'; len2++){} //获取str2长度
char *ret = (char *)malloc(sizeof(char)*(len1+len2+1)); //申请动态空间
/*内存赋值*/
int i;
for (i=0; i<len1; i++){
*(ret+i) = *(str1+i);
}
for (i=0; i<len2; i++){
*(ret+len1+i) = *(str2+i);
}
*(ret+len1+len2) = '\0';
return ret;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
#include <stdlib.h>
#define MAXSTRLEN 128
void strcatenate (char t[], char s[]);
int main()
{
char str1[MAXSTRLEN], str2[MAXSTRLEN];
printf ("prima stringa: ");
gets (str1);
printf ("seconda stringa: ");
gets (str2);
strcatenate (str1, str2);
puts (str1);
return EXIT_SUCCESS;
}
void strcatenate (char t[], char s[])
{
int i, j;
i = 0;
while (t[i] != '\0') i++;
j = 0;
while ((t[i++] = s[j++]) != '\0');
return;
}
运行时先输入第一个字符串 回车,再输入第二个字符串 回车
#include <stdlib.h>
#define MAXSTRLEN 128
void strcatenate (char t[], char s[]);
int main()
{
char str1[MAXSTRLEN], str2[MAXSTRLEN];
printf ("prima stringa: ");
gets (str1);
printf ("seconda stringa: ");
gets (str2);
strcatenate (str1, str2);
puts (str1);
return EXIT_SUCCESS;
}
void strcatenate (char t[], char s[])
{
int i, j;
i = 0;
while (t[i] != '\0') i++;
j = 0;
while ((t[i++] = s[j++]) != '\0');
return;
}
运行时先输入第一个字符串 回车,再输入第二个字符串 回车
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询