C语言 将两个字符数组的内容连接后存放到另一个字符数组中 使用gets()输入字符串给字符数组,统计字符数组
思路:两个字符串的拼接可以使用strcat函数。
strcat函数原型: char *strcat(char *s1,char *s2);
需要引入头文件:#include
功能:把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;}/*运行结果:asfds123423asfds123423 */
这是因为,你的程序中有scanf的调用,它不读取 回车,所以在输入缓冲里面剩下了 这个字符,因此gets下次读取的时候就会把这个字符读完后就又进入了下一 4门课成绩的输入。
改变的办法:
for(i=0;i<2;i++)
{
fflush(stdin);//清空缓冲
gets(st[i].name);
scanf("%d,%d,%d,%d",&st[i].no,&st[i].score1,&st[i].score2,&st[i].score3);
ave[i]=(st[i].score1+st[i].score2+st[i].score3)/3;
}
#include <string.h>
char s1[256];
char s2[256];
char s3[512];//s3=s1+s2
int main()
{
int i,sum=0;
char tmp;//要统计的字符
printf("请输入s1,s2:\n");
gets(s1);//输入字符串s1,s2
gets(s2);
//将s1的字符串复制到s3中
strcpy(s3,s1);
//将s3与s2相连接,可以理解为:s3=s1+s2
strcat(s3,s2);
// printf("s3=\"%s\"\n",s3);
printf("请输入要统计的字符:");
tmp=getchar();
for(i=0;i<strlen(s3);i++)
{
if(s3[i]==tmp) sum++;
}
printf("\"%c\"出现的次数: %d\n",tmp,sum);
return 0;
}
不知道楼主的要求我基本用库函数写的,不知道符不符合要求,不懂得恳请在提问
/*
s1 = Visaul stuio 2010
s2 = Visual C++ 6.0
"Visaul stdio 2010Visual C++ 6.0" + "Visual C++ 6.0" = "Visaul stuio 2010Visual C++ 6.0"
要统计上面的字符串中的字符 c = 0
Visaul stdio 2010Visual C++ 6.0中共有3个字符0。
Press any key to continue
*/
#include <stdio.h>
char *mystrcat(char *s1, char *s2) { // s1 + s2 => s1
char *p1 = s1,*p2 = s2;
while(*p1) ++p1;
while(*p1++ = *p2++);
return s1;
}
int countch(char *s, char c) { // 返回出现在s中的字符c的个数
int count = 0;
char *p = s;
while(*p) {
if(*p == c) ++count;
++p;
}
return count;
}
int main() {
char s1[81],s2[81],ch;
printf("s1 = ");
gets(s1);
printf("s2 = ");
gets(s2);
printf("\"%s\" + \"%s\" = \"%s\"\n",s1,s2,mystrcat(s1,s2));
printf("要统计上面的字符串中的字符 c = ");
fflush(stdin);
scanf("%c",&ch);
printf("%s中共有%d个字符%c。\n",s1,countch(s1,ch),ch);
return 0;
}
int main()
{
char s1[50],s2[50],s3[100],c;
int i=0,count=0;
memset(s1,0,sizeof(si));
memset(s2,0,sizeof(si));
memset(s3,0,sizeof(si));
printf("input string1:\n");
gets(s1);
printf("input string2:\n");
gets(s2);
sprintf(s3,"%s%s",s1,s2);
printf("s3 is %s\n",s3);
printf("input letter:");
c=getchar();
for(i=0;i<strlen(s3);i++)
{
if(s3[i]==c) count++;
}
printf("%c is:%d",c,count);
}
没编译 你自己试试吧。
C语言 将两个字符数组的内容连接后存放到另一个字符数组中 使用gets...
char s1[256];char s2[256];char s3[512];\/\/s3=s1+s2 int main(){ int i,sum=0;char tmp;\/\/要统计的字符 printf("请输入s1,s2:\\n");gets(s1);\/\/输入字符串s1,s2 gets(s2);\/\/将s1的字符串复制到s3中 strcpy(s3,s1);\/\/将s3与s2相连接,可以理解为:s3=s1+s2 strcat(s3,s2...
在C语言中编写一个程序将两个字符串连接起来 不用strcat函数 我编的...
int i=0,j=0;printf("请输入第一个字符串");gets(str1);printf("\\n请输入第二个字符串");gets(str2);i = strlen(str1) ;while(str2[j]!='\\0'){ str1[i]=str2[j];i++;j++;} str1[i]='\\0';printf("\\n两个字符连接后为:%s \\n",str1);} 那个while循环多余了,用不...
C语言中用数组输入两个字符串S1和S2,将S2接在S1后面
include "stdio.h"define N 80 void main(){ char S1[2*N+1],S2[N+1];char *p,*q;scanf("%s%s",S1,S2);p=S1;q=S2;while(*p++);p--;while(*q){ p=*q;p++;q++;} p='\\0';printf("%s\\n",S1);}
输入两个字符串,将这两个字符串连接后输出
include <stdio.h>int main(void){ char a[100],b[50],*pa,*pb; scanf("%50s%50s",a,b); pa=a,pb=b; while(*pa) pa++; while(*pa++=*pb++); printf("\\n%s\\n",a); return 0;}
C语言 编写函数strcat把给定的两个字符串连接起来
为实现字符串连接,运用C语言编写了一个函数。该函数名叫做"connect",接收两个字符数组参数str1和str2。函数内部首先定义了两个整型变量i和j。i的值被设定为str1数组的长度,而j则用于遍历str2数组直到遇到'\\0'结束符。接着,通过一个for循环,将str2数组中的字符逐个添加到str1数组后部。这个过程...
C语言 不用连接函数strcat将字符数组2中的字符串连接字符数组1的后面...
\\0') \/\/如果到了s2的结尾就跳出循环 break;s[j]=s2[i]; \/\/从j开始,也就是复制过来的s1字符串的后面开始,将s2的字符一个个复制给s } printf("s1和s2两个串连接起来后是:\\n");for(i=0;i<=j;i++)printf("%c",s[i]); \/\/打印s字符串 printf("\\n");return 0;} ...
c语言! 编一程序,将两个字符串连接起来,不要用strcat函数.
include<stdio.h>void mystrcat(char a[],char b[]){\/\/字符串连接函数 int i=0,j=0;while(a[i++]!='\\0');\/\/找到a的结束位置 i--;while(b[j]!='\\0'){\/\/把b元素赋值到a中 a[i++]=b[j++];} a[i]='\\0';\/\/加上结束标志 }int main(){char a[100],b[100];scanf(...
编写一个程序,将两个字符串连接起来,并输出(不要使用strcat函数)。用C...
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\\n",s1);} ...
将两个字符串S1和S2连接起来 不用streat函数 C语言实现
两个字符串是不是已知的?如果是已知的话:int n,i;n=strlen(s1);for(i=0;i<100;i++)s1[n+i]=s2[i];s1[n+i]='\\0';有些步骤已经省略,100只是一个长度,看你字符数组定义了多大
c语言实现两个字符串加到一起
实现两个字符串拼接的C语言代码如下:在代码中,我们首先包含头文件。然后,定义一个名为`my_strcat`的函数,用于将两个字符串拼接在一起。函数的参数包括一个目标字符串`dst`和一个源字符串`src`。在`main`函数中,定义两个字符数组`str1`和`str2`,用于存储输入的字符串。通过`printf`函数提示...