首先请实现如下两个函数(要自己写代码完成,不允许直接调用库函数):
int myStrLen(char *s);
该函数功能为求字符串s的长度。
void myStrConcat(char *string1, char *string2);
该函数的功能为将字符串string2拼接至字符串string1后边。注意:该函数的两个参数,在调用时有可能会指向同一个字符串,函数需要在这种情况下能正确完成指定的功能。
主函数要求使用以上两个函数实现如下功能:
输入:
第一行为三个整数n(0<n<10),a,b, 第二行为n个整数,后边为n行字符串,每个字符串长度不超过20。
输出:
要求首先将第b行字符串拼接至第a行的字符串后再输出。
第一行为n个用单个空格分隔的整数(最后一个数后无空格),为按各字符串的输入次序输出的各字符串的长度。
后边n行为将输入的字符串按输入的第2行给出的顺序依次输出。
输入保证合法且字符串中不包含空格。
#include<stdio.h>
int myStrLen(char s[]);
void myStrConcat(char string1[], char string2[]);
int main()
{
int n,a,b,i,j;
int k[20];
char c[20][100]={"0"};
scanf("%d%d%d",&n,&a,&b);
for(i=0;i<n;i++)scanf("%d",&k[i]);
for(i=0;i<n;i++){
getchar();
scanf("%s",c[i]);
}
myStrConcat(c[a],c[b]);
for(i=0;i<n;i++){
if(i==0)printf("%d",myStrLen(c[i]));
else printf(" %d",myStrLen(c[i]));
}
printf("\n");
for(i=0;i<n;i++)printf("%s\n",c[k[i]]);
return 0;
}
void myStrConcat(char string1[], char string2[])
{
int myStrLen(char s[]);
int i,j,l1,l2;
l1=myStrLen(string1);
l2=myStrLen(string2);
for(i=l1,j=0;string2[j]!='\0';i++,j++)string1[i]=string2[j];
string1[l1+l2]='\0';
}
int myStrLen(char s[])
{
int j=0,len=0;
for(j=0;s[j]!='\0';j++,len++);
return(len);
}