c语言的问题 连个字符串相连的问题 求解释

作者&投稿:翠文 (若有异议请与网页底部的电邮联系)
c语言题:关于字符串连接~

系统string.h头文件包含了一个字符串连接函数
strcat()

所以很方便

#include
#include
void strcatenate (char t[], char s[] )
{
strcat(t,s);
}


void main()
{
char str1[30], str2[30];
printf ("输入第一个字符串:
");
gets (str1);
printf ("输入第二个字符串:
");
gets (str2);
strcatenate (str1, str2);
puts (str1);
}

几乎所有的字符串函数,第一个参数都是目的参数,结果也是存在这个参数中。
按你的要求:字符+字符串,应该是没有现成的功能函数。如果经常用到,自己封装一个函数吧;
如果你的连接是:字符串+字符,倒是可以使用strncat()函数,strncat(bcd, &a, 1); // bcd 为字符串变量,a为字符变量

我举个例子第一个字符串的是abc,第二个是defg
则可能数组存放中是这样的
abc\0
defg\0
(\0是结束标志)

进行p1后第一个字符串变为
abcdefg
注意此时没有\0,所以这时会发生乱七八糟的无厘头错误。因为while(str1[j]!='\0')使得当碰到的结束标志时后面的赋值语句以及自加语句不执行

解决办法,在p1函数的最后面加上
str[i]=str[j];
即可。祝你愉快顺利的解决问题

未初始化数组
char x1[100];
char x2[100];
memset(x1,0,100);
memset(x2,0,100);

嗯,正常,因为字符串是以'\0'结尾的,而你在程序里面这个'\0'没有拷过去,所以后面乱码。在最后面加上str[i]='\0';就好了

用现成的吧strcpy(a,b)
头文件string.h
while(str(i)=str1(i)!='\n')


会同县17041219676: C语言中字符串连接怎么解决?? -
书追橘红: 可以使用字符串连接函数strcat()函数,头文件是#include<string.h>; 举例如下:两个字符串char [100]="abc",b[50]="def"; 将其变为一个字符串并输出#include<stdio.h>#include<string.h> int main() { char a[100]="abc",b[50]="def"; ...

会同县17041219676: 用C语言怎么将两个字符串连接起来? -
书追橘红: 这些是宏的功能. #是将一个参数转换为字符串.##可以连接字符串比如这样: #include <stdio.h> #define STR(a,b) a##b int main() { printf("%s\n",STR("123","456")); return 0; }

会同县17041219676: C语言字符串连接问题 -
书追橘红: 可以使用系统提供的函数strcat,若要自己实现的话思路如下: 1.获得两个字符串的长度,相加,开辟一个长度为前面两个字符串长度和的数组; 2.将两个字符串中的值依次赋值到新的字符串中.

会同县17041219676: C语言中 怎么连接两个字符串? -
书追橘红: 注意,下面这句 i++ ,如果a数组中取出的 不是 '\0' (结束符)的话, i 加 1 了 , while(a[i]!='\0') i++; // 所以 下面这句执行 时, i 应该 是 10 (左右),就是 hello word 结束后 while(b[j]!='\0') 所以不会覆盖 a 数组中原有数据

会同县17041219676: c语言题:关于字符串连接 -
书追橘红: #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; } ...

会同县17041219676: C语言:将两个字符串连接起来. -
书追橘红: 原发布者:hxk古月#define_CRT_SECURE_NO_WARNINGS#include#include#includevoidmystrcat(char*p,char*q){char*pp=p;while(*pp!='\0'){pp++;}*pp='';while(*q!='\0'){*(++pp)=*(q++);}*(++pp)='\0';}voidmain(){charstr[30]="tracert";charweb[50];...

会同县17041219676: 写一个C语言代码,题目是:“写一函数,将连个字符串连接.” -
书追橘红: char concatenate(char string1[],char string2[],char string[])x{int i,j;for(i=0;string1[i]!='\0';i++)string[i]=string1[i];for(j=0;string2[j]!='\0';j++)string[i+j]=string2[j];string[i+j]='\0';}main(){char s1[100],s2[100],s[100];printf("\n input string1:\n");...

会同县17041219676: c语言 将两个字符串首尾相连 -
书追橘红: #include void main() { char a[50]="i love"; char b[50]="you"; int i=0,j=0; while(a[i]!='\0') i++; while(b[j]!='\0') a[i++]=b[j++]; a[i]='\0'; printf("the new string is %s\n",a); }

会同县17041219676: 编写一个函数,将两个字符串连接起来.C语言题目 急急急!!!!!!!!!!在线等麻烦写完整的,我用的是win - tc. -
书追橘红: char *concat(char *source,char *destin) { while(*source); do{ *source++=*destin; }while(*destin++); }

会同县17041219676: 用C语言写出一函数,将两个字符串连接,该怎么写 -
书追橘红: void concat(char *s1, int size1, char *s2, int size2, char *sout) {int i;for (i = 0; i < size1; ++i)sout[i] = s1[i];for (i = 0; i < size2; ++i)sout[i + size1] = s2[i];sout[i] = '\0'; } 示例使用方法: char *s1 = "ABCD"; char *s2 = "12345"; char sout[100];...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网