C语言编程:输入2个字符串,将其连接后输出.
说白了就是strcat
char *strcat(char *strDest, const char *strSrc) //将源字符串加const,表明其为输入参数
{
char *address = strDest; //该语句若放在assert之后,编译出错
assert((strDest != NULL) && (strSrc != NULL)); //对源地址和目的地址加非0断言
while(*strDest) //是while(*strDest!=’\0’)的简化形式
{ //若使用while(*strDest++),则会出错,因为循环结束后strDest还会执行一次++,那么strDest
strDest++; //将指向'\0'的下一个位置。/所以要在循环体内++;因为要是*strDest最后指
} //向该字符串的结束标志’\0’。
while(*strDest++ = *strSrc++)
{
*p++等价于*(p++)。至于为什么会等价呢?根据c语言的优先级。*与++的优先级同处在第二级别上。他们的优先级是一样的,又因为处在第二级别的优先级运算符是结合方向是从右到左,所以当出现*p++这样的表达式的时候,根据优先级别相同,并且结合方向是从右到左,所以就等价于*(p++)了。那么也就是,先将p指针移动到下个p指针所指向元素的地址的下一个地址,然后再对那个地址取值。(*p)++是取p所指向地址的值,然后再将这个值+1
NULL; //该循环条件内可以用++,
} //此处可以加语句*strDest=’\0’;无必要
#include
void main()
{
char c,str[10][100];
int s,max,k;
int i,n;
max=0;
for(i=0;i<10;i++)
{
s=0;
n=0;
while((c=getchar())!='
')
{
str[i][n++]=c;
s+=(int)c;
}
str[i][n]='\0';
if(max<s)
{
max=s;
k=i;
}
}
printf("The Max Is:
%s
",str[k]);
}
望采纳
思路:两个字符串的拼接可以使用strcat函数。
strcat函数原型: char *strcat(char *s1,char *s2);
需要引入头文件:#include <string.h>
功能:把s2所指字符串添加到s1结尾处并添加'\0'。
注意:s1必须有足够的空间来容纳s1和s2的字符串。
参考代码:
#include "stdio.h"
#include "string.h"
int main() {
char s1[200],s2[100];
gets(s1);
gets(s2);
strcat(s1,s2);
puts(s1);
return 0;
}
/*
运行结果:
asfds
123423
asfds123423
*/
直接用strcat函数就行了
#include<stdio.h>
int main()
{
char a[99],b[99]; //字符串长度可修改
gets(a);
gets(b);
printf("%s\n",strcat(a,b));
return 0;
}
#include<stdio.h>
char *my_strcat(char *target,const char *source)
{
char *original=target;
while(*original != '\0')
original++; // Find the end of the string
while(*source)
*original++=*source++;
*original='\0';
return(target);
}
int main()
{
char a[81],b[81];
gets(a);
gets(b);
my_strcat(a,b);
printf("a+b=%s\n",a);
return 0;
}
c语言:编写一个将两个字符串连接成一个字符串的函数。(不能用strcat函...
1 查找到第一个字符串的结尾 2 遍历第二个字符串,逐一复制到第一个字符串尾部,包括结束符。代码如下:void cat_str(char *dst, char *src){ while(*dst) dst ++; dst --; while(*src) *dst++=*src++; *dst='\\0';} ...
c语言! 编一程序,将两个字符串连接起来,不要用strcat函数.
思路:字符串连接先需要找到第一字符串的结束位置,接着把第二字符串元素放到第一字符串后面,最后加上结束标志即可。参考代码:拼接123和456 include<stdio.h>void mystrcat(char a[],char b[]){\/\/字符串连接函数 int i=0,j=0;while(a[i++]!='\\0');\/\/找到a的结束位置 i--;while(b[j...
在C语言中编写一个程序将两个字符串连接起来 不用strcat函数 我编的...
include <stdio.h> include <string.h> void main(){ char str1[50],str2[10];\/\/要定义成char型 int i=0,j=0;printf("请输入第一个字符串");gets(str1);printf("\\n请输入第二个字符串");gets(str2);i = strlen(str1) ;while(str2[j]!='\\0'){ str1[i]=str2[j];i++...
编写一个程序,将两个字符串连接起来,并输出(不要使用strcat函数)。用C...
include<stdio.h> void main(){ char s1[80],s2[40];int i=0,j=0;printf("\\ninput stringl:");scanf("%s",s1);printf("input string2:");scanf("%s",s2);while(s1[i]!='\\0')i++;while(s2[j]!='\\0')s1[i++]=s2[j++];s1[i]='\\0';printf("The new string is:%s...
c语言编程 字符串连接 由键盘任意输入两串字符,不用库函数strcat,连接...
帮你写了一个,函数strconnect为连接字符串的,调试过,可用 include <stdio.h> include<stdlib.h> strconnect(char a[10],char b[10],char c[20]){ char *p,*q;p=a;q=b;while(*p!='\\0')(c++)=*(p++);while(*q!='\\0')(c++)=*(q++);(c+1)='\\0';} main(){ char a...
C语言编写一个程序,将两个字符串连接起来,不要使用strcat函数
include "stdio.h"void main(){ char a[50],b[50],c[50]; int i=0,j=0,k=0;printf("输入第一个字符串");gets(a);printf("输入第二个字符串");gets(b); printf("a=%s\\n",a); printf("a=%s\\n",b); while(a[i])c[k++]=a[i++]; while(b[j])c...
c语言从键盘输入两个字符串,将第二个字符串连接到第一个字符串的后面...
1、新建一个工程和.c文件 ,输入头文件和主函数。2、定义变量类型。3、调用cpy函数。4、定义一个函数,并定义变量类型。5、用一个For 语句和if语句判断是否为元音。6、最后加一个字符串结束符,并在主函数中输出。7、编译。运行得到最后结果。
C语言中 输入两个字符串,链接到一起并输出长度 使用stract
char str1[20] = "Hello ";char str2[20] = "World!";strcat(str1,str2);printf("%s\\n",str1);\/\/结果打印Hello World!\/\/连接两个字符串str1 连接str2 ,把结果放到第一个参数str1中
C语言程序从键盘上输入两个字符串若不相等将短的字符串连接到长的字符...
printf("input string 2 : ");gets(str2); \/* 输入字符串2 *\/ len1 = strlen(str1); \/* 获取字符串1的长度 *\/ len2 = strlen(str2); \/* 获取字符串2的长度 *\/ if(len1 < len2){ strcat(str2, str1); \/* 将短的字符串1接在较长的字符串2的后面 *\/ printf("new string...
用C语言编程:编写一个函数,将两个字符串连接起来
一:char* catStr(char str1[],char str2[]){ strcat(str1,str2);return str1;} 二:char* catStr(char str1[],char str2[]){ int i=0;int lenstr1=0;lenstr=strlen(str1)for(i;i<=strlen(str);i++){ str1[lenstr++]=str2[1];} return str1;} ...