C程序题,高手请进。

编写一个程序:从键盘输入两个字符串str1和str2,并将字符串str2连接到str1的后面,并将结果显示出来。要求:1用数组编程实现上述程序;2不能使用字符串库函数,如strcat函数。

题目的意思不就是让你自己实现strcat函数么。
copy的:
自己动手编程实现串连接函数(即strcat)。函数的第一个参数为目的串首地址,第二个参数为源串首地址,函数将源串内容连接到目的串的尾部。
试题程序:
#include “stdio.h”

main()
{char ss[100],dd[100] ;
printf(“input source string:”) ;
scanf(“%s”,ss) ;
printf(“input destination string:”) ;
scanf(“%s”,dd) ;
mystrcat(dd,ss) ;
printf(“%s\n”,dd) ;
}
分析:首先找到目的串的尾部,用指针p指示,再用指针q指向源串首部,开始逐位复制。要注意复制完成后要在目的串尾部加上止结束符‘\0’。还有,目的串的空间要足够大,足以容纳源串,否则会引起地址空间的混乱,产生不可预知的错误。
答案:
mystrcat(char *s1,char *s2)
{char *p,*q;
p=s1;q=s2;
while(*p)
p++;
while(*q)
*p++=*q++;
*p=‘\0’;
}
温馨提示:内容为网友见解,仅供参考
无其他回答

C语言高手请进来11
第一题:运行后,循环第一轮后输出8,第二轮后输出7,第三轮输出6,第四轮时达到要求退出循环,结束程序。选B 第二题:这个是找出小于等于50的整数中能被2、3、7整除的数,这个题直接从答案里找一个,所以选C 第三题:运行到这个时for(j=0;j < 3;j++){ if(j%2) continue;x++;} x++ ...

编程高手请进!(C语言)
1.include <stdio.h> include<stdlib.h> include<ctype.h> main(){ int count;\/*猜数字的次数*\/ int number;\/*系统产生的随机数字*\/ int guess;\/*程序员输入数字*\/ char yes='Y';clrscr();printf("\\nNow let us play the game.\\n Guess the number:");while (toupper(yes)=='Y'...

高手请进:用C实现穿衣顺序问题
int i,j;char c='A';for(i=0;i<10;i++){ printf("%c: ",c++);for(j=0;j<10;j++){ printf("%d ",a[i][j]);} printf("\\n");} } int juzhenkong(int a[][10]){\/\/看看矩阵空了么 int i,j,t=0;for(i=0;i<10;i++){ for(j=0;j<10;j++){ t+=a[i]...

写C语言程序 高手请进...跪求!!!
include<stdio.h> void main(){ int a[10],b[10],i,j;printf("输入数组a");for(i=0; i<10; i++)scanf("%d",&a[i]);printf("输入数组b");for(i=0; i<10; i++)scanf("%d",&b[i]);printf("相同元素:");for(i=0; i<10; i++)for(j=0; j<10; j++)if(a[i]...

求C语言程序,高手请进...
输入一个字符串s,再输入一个字符c,将字符串s中出现的所有字符c删除。要求定义并调用函数delchar(s,c),它的功能是将字符串中的出现的所有c字符删除 输入输出示例 Input a string: happy new year Input a char: a After deleted, the string is: hppy new yer*\/ \/*#include <stdio.h> i...

高分C语言问题~~·高手请进
int getValue(int A[]){ 初始 int S=0 1. (数组A)n个数字从小到大排序 (例如:1,2,9)2. 取上步中最小的两个数相加之和为一个M , S=S+M 3. 数组A中除去最小的两个数,然后将M加进去形成一个新数组A元素个数为 n=n-1 4. n>1时回到1.否则函数返回S+A[0] (或S+M,因为...

c 语言高手请进,两道题,错在哪里,速度快点啊,急用啊
int data;struct node *link;};typedef struct node NODE;void create_linklist(NODE** head,int x,int y,int z){ NODE *p,*q;p=(NODE*)malloc(sizeof(NODE));head=p;p->data=x;q=(NODE *)malloc(sizeof(NODE));p->link=q;p=q;p->data=y;q=(NODE *)malloc(sizeof(NODE))...

c语言高手请进
include <stdio.h> int main(){ int i,j,k;for(i=0;i<9;i++){ for(j=0;j<9;j++){ for(k=0;k<9;k++){ if((i+j+k)<10 && i!=0)printf("%d%d%d ",i,j,k);} } } return 0;} 都类似的,只要改改if里的条件就可以了...q币啊.....

C高手请进,比较两个时间先后的函数
2) 也可以根据时间字符串,提取年月日时分秒,再比较。这样可以获取时间的具体信息。对时间进行任意的操作而不限于比较。下面是示例程序,用了上述两种方法:\/ include <stdio.h> include <string.h> include time_t trans(char timeForamt[],char strTime[]){ \/ struct tm { int tm_sec; ...

[C语言问题][高手请进] 12345 怎样通过+ - × ÷得 22 ?
cout<<exps[0].c_str()<<endl;return false;} return false;} for(i=0;i<n;i++){ for(j=0;j<n;j++){ if(i==j)continue;a=num[i];b=num[j];num[j]=num[n-1];as=exps[i];bs=exps[j];exps[j]=exps[n-1];if(i!=n-1){num[i]=a+b;exps[i]=string("("...

相似回答
大家正在搜