编写程序,将字符串str1中的第m个字符开始的全部字符复制到另一个字符串str2的最后面。

程序不能够用strcat()函数和strlen()函数;需要判断输入的m是否超过了str1的长度。本题定义数组:字符串str1为:”Hello word” 字符串str2为:”I like the”。

void char_m_cat(char *str1, char *str2, int m)
{
int i;
for(i=0;i<m && *str1++ !="\0";i++);
if(i>=m) //m没有超过str1长度
{
while(*str2++!="\0"); //找str2最后的位置
while(*str2++=*str1++!="\0");
}
}
给我最佳答案嗯,以后有问题可以问我
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-23
/////////////////////////
///strcat.h
#include <cstdlib>
char * my_strcat(const char *str1,int m,char *str2,int len2)
{
int num1,num2;
//字符串1的长度
for( num1=0; str1[num1] != '\0' ; )
num1++;

//字符串2的长度
for( num2=0; str2[num2] != '\0'; )
num2++;

//将字符串1链接到字符串2中去,如果m大于str1中的大小
//则把全部的str1中的内容都写入str2中,如果str2中的
//容量不够则写满str2为止,并在末尾添加结束符
for( int i=0; (i < m) && (i < num1 ); i++ )
{
if( num2 >= len2 )
return str2;
str2[num2++]=str1[i];
}
return str2;
}
第2个回答  2012-11-23
很简单的 试着写啊 哪不明白追问

能不能帮我写一个?

追答

#include
void main()
{
char str1[]="hello world";
char str2[]="i like the";
int m,i,j;
printf("输入从第几个字符开始\n");
scanf("%d",&m);
for(i=0;str2[i]!='\0';i++)
{
;
}
for(j=0;str1[j]!='\0';j++)
{
;
}
if(j>m-1)
{
for(int j=m-1;str1[j]!='\0';j++,i++)
{
str2[i] = str1[j];
}
str2[i] = '\0';
printf("%s",str2);
}
else
{
printf("没有第%d个字符\n",m);
}
return ;
}

相似回答