将两个字符串连接。解决了c语言输入出现溢出现象
2014-08-29 22:25
459 查看
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
int main()
{
char*getstr(void);
voidconcatenatc(char *s1,char *s2,char * s3);
char*s1,*s2,*s3;
printf("Please input String1:\n");
s1 =getstr();
printf("Please input String2:\n");
s2 =getstr();
s3 = (char*)malloc(sizeof(char)*(strlen(s1)+strlen(s2)));//要先分配地址才能使用。
concatenatc(s1,s2,s3);/
printf("Thenew string is:%s",s3);
return 0;
}
void concatenatc(char *s1,char *s2,char * s3)//字符拼接
{
int i = 0,j= 0;
for(i =0;s1[i]!='\0';i++)
{
s3[i] = s1[i];
}
for(j =0;s2[j]!='\0';j++)
{
s3[i+j] = s2[j];
}
s3[i+j] ='\0';
}
char * getstr(void)
{
char c,*str=NULL;
int n=0;
while (1)
{
c=getchar();
str=(char*)str?realloc(str,sizeof(char)*++n):malloc(sizeof(char)*++n);
if (c=='\n'||c==EOF)
{
str[n-1]='\0';
break;
}//if
str[n-1]=c;
}
return str;
}
#include <stdlib.h>
#include <malloc.h>
int main()
{
char*getstr(void);
voidconcatenatc(char *s1,char *s2,char * s3);
char*s1,*s2,*s3;
printf("Please input String1:\n");
s1 =getstr();
printf("Please input String2:\n");
s2 =getstr();
s3 = (char*)malloc(sizeof(char)*(strlen(s1)+strlen(s2)));//要先分配地址才能使用。
concatenatc(s1,s2,s3);/
printf("Thenew string is:%s",s3);
return 0;
}
void concatenatc(char *s1,char *s2,char * s3)//字符拼接
{
int i = 0,j= 0;
for(i =0;s1[i]!='\0';i++)
{
s3[i] = s1[i];
}
for(j =0;s2[j]!='\0';j++)
{
s3[i+j] = s2[j];
}
s3[i+j] ='\0';
}
char * getstr(void)
{
char c,*str=NULL;
int n=0;
while (1)
{
c=getchar();
str=(char*)str?realloc(str,sizeof(char)*++n):malloc(sizeof(char)*++n);
if (c=='\n'||c==EOF)
{
str[n-1]='\0';
break;
}//if
str[n-1]=c;
}
return str;
}
相关文章推荐
- 利用C语言实现:输入两个字符串,统计一个字符串在另一个字符串中出现的次数 。
- C#使用String.Format()方法时,出现异常"输入的字符串格式有误"的解决方法
- c语言中连接两个字符串
- 带有汉字的字符串截断出现半个“汉字”的解决方法-C语言源码
- c语言两个字符串数组的连接 通过地址搞定
- c语言连接两个字符串
- string.Format出现异常"输入的字符串格式有误"的解决方法
- 程序员面试宝典 8.2 典型递归问题: 面试例题1: 输入两个字符串,比如 abdbcc 和 abc, 输出第二个字符串在第一个字符串中的连接次序。即输出 125, 126, 145, 146.
- string.Format出现异常"输入的字符串格式有误"的解决方法
- postgreSQl 连接数据库时 出现无法连接的现象就解决方法
- C语言学习序列之面试题目-计算两个字符串中出现的相同英文字符
- 输入两个字符串,比如abdbcc和abc,把abc在abdbcc中的连接次序输出
- 《程序员面试宝典》:输入两个字符串,比如abdbcc和abc,输出第二个字符串在第一个字符串中的连接次序,即输出125,126,145,146
- 解决ssh连接慢(有时候等半分钟才出现密码输入提示)的方法
- 输入两个字符串,比如abdcc和abc,输出第二个字符串在第一个字符串中的连接次序
- 关于AutoCompleteTextView 为什么必须输入两个字符才能出现补全提示的问题的解决办法
- 关于AutoCompleteTextView 为什么必须输入两个字符才能出现补全提示的问题的解决办法
- 输入两个字符串,比如abdbcc和abc,输出第二个字符串在第一个字符串中的连接次序(递归方法)
- c语言连接两个字符串