在主函数中输入两个字符串,连接后的字符串输出(不得使用strcat()函数)。
在主函数中输入两个字符串,写一函数将其连接,再在主函数中将连接后的字符串输出(不得使用strcat()函数)。我不想用第三个空string.就是把第二个string接到第...
在主函数中输入两个字符串,写一函数将其连接,再在主函数中将连接后的字符串输出(不得使用strcat()函数)。
我不想用第三个空string.就是把第二个string接到第一个上。不能用指针和strcat. 用以下方法不行,求问哪里错了,怎么改。谢谢,
#include<stdio.h>
void main()
{
void link(char str1[],char str2[]);
char string1[40],string2[20];
printf("sentence 1:");
scanf("%s\n",string1);
printf("sentence 2:");
scanf("%s\n",string2);
link(string1,string2);
printf("the final sentence is: %s\n",string1);
}
void link(char str1[],char str2[])
{
int i=0,j=0;
while(str1[i]!='\0')
i++;
while(str2[j]!='\0')
{
str1[i++]=str2[j++];
}
str1[i]='\0';
}
一定要用函数的。我run出来永远只有string1的结果,求帮助。 展开
我不想用第三个空string.就是把第二个string接到第一个上。不能用指针和strcat. 用以下方法不行,求问哪里错了,怎么改。谢谢,
#include<stdio.h>
void main()
{
void link(char str1[],char str2[]);
char string1[40],string2[20];
printf("sentence 1:");
scanf("%s\n",string1);
printf("sentence 2:");
scanf("%s\n",string2);
link(string1,string2);
printf("the final sentence is: %s\n",string1);
}
void link(char str1[],char str2[])
{
int i=0,j=0;
while(str1[i]!='\0')
i++;
while(str2[j]!='\0')
{
str1[i++]=str2[j++];
}
str1[i]='\0';
}
一定要用函数的。我run出来永远只有string1的结果,求帮助。 展开
3个回答
展开全部
把scanf()改成gets()
或者在scanf()后加getchar();
因为第二个字符串接受了你的回车 相当于\n
你可以打印看一下
或者在scanf()后加getchar();
因为第二个字符串接受了你的回车 相当于\n
你可以打印看一下
追问
第二个字符串是怎么接受我的回车的呢? 能解释下吗? 我刚开始学,不好意思。
然后还有,我用了gets()之后管用了,但是如果我输入一句话比如:
string1: a girl
string2: with a hat
连接起来就成了: a girlwith a hat
中间没有空格啊,怎么修改呢
追答
同学 不要逗好么 中间没有空格是因为你输入的没有空格
scanf()比如说你输入了gjweoiweg然后回车
str1接收了这个字符串 回车这个字符将会成为下个字符串的内容 所以用scanf对字符串输入要注意这个问题
中间没有空格 你直接加一个空格不就行了
展开全部
void link(char str1[],char str2[])
{
int i=0,j=0;
while(str1[i]!='\0')
i++;
i--;//
while(str2[j]!='\0')
{
str1[i++]=str2[j++];
}
str1[i]='\0';
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个题目就是要自己实现一个strcat。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询