C 练习实例86
题目:两个字符串连接程序 。
程序分析:无。
程序源代码:
实例
// Created by www.runoob.com on 15/11/9.
// Copyright © 2015年 菜鸟教程. All rights reserved.
//
#include <stdio.h>
#include<stdlib.h>
#include<string.h>
char* strconnect(char *str1,char *str2);
int main()
{
char str1[20],str2[20];
char *str;
puts("请输入两个字符串,用回车分开:");
scanf("%s%s", str1, str2);
str=strconnect(str1,str2);
puts("连接后的字符串为:");
puts(str);
return 0;
}
char* strconnect(char *str1,char *str2)
{
char*str;
str=(char*)malloc(strlen(str1)+strlen(str2)+1);
str[0]='\0';
strcat(str,str1);
strcat(str,str2);
return str;
}
C 语言经典100例
叮咚
a12***59648@qq.com
直接使用 strcat:
#include<stdio.h> #include<string.h> int main() { char a[100]; char b[100]; scanf("%s%s", a, b); puts(strcat(a,b)); }叮咚
a12***59648@qq.com
HIT_CCC
117***2963@qq.com
参考方法:
#include<stdio.h> #include<stdlib.h> #include<string.h> char* strcomb(char *str1, char *str2) { char *p = str1; char *q = str2; while(*p != '\0') p++; while(*q != '\0') { *p = *q; p++; q++; } *p = '\0'; return str1; } int main(void) { char str1[20],str2[20]; printf("请输入第一个字符串:\n"); gets(str1); printf("请输入第二个字符串:\n"); gets(str2); strcmp(str1,strcomb(str1,str2)); puts(str1); return 0; }HIT_CCC
117***2963@qq.com
DawnEve
pos***469@163.com
重写函数实现连接字符串,不限字符串长度。
#include<stdio.h> #include<stdlib.h> //字符串长度 int strlen2(char *p){ int n=0; while(*p!='\0'){ n++; p++; } return n; } //复制字符段,并返回新指针 char *strcat2(char *p1, char *p2){ //获取长度 int n1=strlen2(p1), n2=strlen2(p2), i; //复制字符数组 char *p3=malloc(sizeof(char)*(n1+n2+1)); while(*p1!='\0'){ *(p3++)=*(p1++); } while(*p2!='\0'){ *(p3++)=*(p2++); } //*p3='\0'; return p3-n1-n2; } int main(){ char *c1="hello"; char *c2=" world!"; char *pstr=strcat2(c1, c2); printf("'%s'\n", pstr); free(pstr); return 0; }DawnEve
pos***469@163.com