函数mystrcat
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/*计算str1的长度,循环结束后i的值等于str1的长度加1*/
for(i=0;str1 [i]!='\0';i++);
/*在str1后添加str2的每个字符*/
for(j=0;str2[j]!='\0';j++)
str1 [i+j]=str2[j];
/*最后一定要加上字符串结束符*/
str1 [i+j]='\0';
gets(str2);
/*调用函数进行处理*/
mystrcat(str1,str2);
/*打印输出结果*/
printf("Catenatedstr1=%s",str1);
}
分析
结果为:
Please input str1:
hello!
Please input str2:
kitty
Catenated str1=hello!kitty
while(*pstr1++=*pstr2++);
}
}
main()
{
/*定义两个字符数组str1和str2,注意str1要能容纳连接后的字符串*/
char str1[MAXNUM],str2[MAXNUM];
/*输入str1和str2*/
printf("\nPlease inputstr1:\n");
gets(str1);
printf("Please input str2:\n");
注意:拷贝过程结束后,要确保连接后的字符串有字符串结束符,否则会产生错误。
数据要求
问题中的常量:
#define MAXNUM 200 /*定义数组的最大长度*/
问题的输入:
char str1/*字符串1,初始的字符串*/
char str2 /*字符串2*,要连接的字符串/
问题的输出:
char str1/*字符串1,最终输出的字符串*/
例9-14编写函数mystrcat,实现和strcat完全相同的功能。
系统函数strcat的功能是把两个字符串连接成一个字符串,使用这一函数时要求头文件包含:#include <string.h>。函数调用形式是strcat(字符串1,字符串2),函数执行后把字符串2的内容连接到字符串1的后面。问题中可以先计算字符串1的长度,从字符串1的长度+1位置(也就是字符串1结束符的位置)开始,利用循环依次将字符串2的所有字符拷贝到字符串1。遍历字符串元素时,可以利用字符串结束符结束循环。
函数mystrcat也可以使用指针方式实现,main函数不用改动,代码如下:
voidmystrcat(char *pstr1,char *pstr2)
{
/*将指针pstr1拨到字符串末尾*/
while(*pstr1) pstr1++;
/*在pstr2后添加pstr2的每个字符,注意循环最后一次拷贝了'\0'*/
2.3.1不是结束标志wk.baidu.comj++
2.3.2是结束标志,退出循环
2.4 给str1后面赋值'\0'
2.5 函数结束
流程图
图5-14程序执行流程图
程序代码如下:
#include“stdio.h”
#define MAXNUM 200
voidmystrcat(charstr1[],charstr2[])
{
int i,j;
初始算法
1.初始化字符串1和字符串2;
2.调用函数mystrcat把字符串2连接到字符串1的后面;
3.输出字符串1;
4.结束。
算法细化
步骤2的细化
2.1 定义变量i,j
2.2 利用循环i找出字符串str1的长度
2.2.1 不是结束标志,i++
2.2.2 是结束标志,退出循环
2.3 利用循环j把字符串str2的内容接到str1的后面
for(i=0;str1 [i]!='\0';i++);
/*在str1后添加str2的每个字符*/
for(j=0;str2[j]!='\0';j++)
str1 [i+j]=str2[j];
/*最后一定要加上字符串结束符*/
str1 [i+j]='\0';
gets(str2);
/*调用函数进行处理*/
mystrcat(str1,str2);
/*打印输出结果*/
printf("Catenatedstr1=%s",str1);
}
分析
结果为:
Please input str1:
hello!
Please input str2:
kitty
Catenated str1=hello!kitty
while(*pstr1++=*pstr2++);
}
}
main()
{
/*定义两个字符数组str1和str2,注意str1要能容纳连接后的字符串*/
char str1[MAXNUM],str2[MAXNUM];
/*输入str1和str2*/
printf("\nPlease inputstr1:\n");
gets(str1);
printf("Please input str2:\n");
注意:拷贝过程结束后,要确保连接后的字符串有字符串结束符,否则会产生错误。
数据要求
问题中的常量:
#define MAXNUM 200 /*定义数组的最大长度*/
问题的输入:
char str1/*字符串1,初始的字符串*/
char str2 /*字符串2*,要连接的字符串/
问题的输出:
char str1/*字符串1,最终输出的字符串*/
例9-14编写函数mystrcat,实现和strcat完全相同的功能。
系统函数strcat的功能是把两个字符串连接成一个字符串,使用这一函数时要求头文件包含:#include <string.h>。函数调用形式是strcat(字符串1,字符串2),函数执行后把字符串2的内容连接到字符串1的后面。问题中可以先计算字符串1的长度,从字符串1的长度+1位置(也就是字符串1结束符的位置)开始,利用循环依次将字符串2的所有字符拷贝到字符串1。遍历字符串元素时,可以利用字符串结束符结束循环。
函数mystrcat也可以使用指针方式实现,main函数不用改动,代码如下:
voidmystrcat(char *pstr1,char *pstr2)
{
/*将指针pstr1拨到字符串末尾*/
while(*pstr1) pstr1++;
/*在pstr2后添加pstr2的每个字符,注意循环最后一次拷贝了'\0'*/
2.3.1不是结束标志wk.baidu.comj++
2.3.2是结束标志,退出循环
2.4 给str1后面赋值'\0'
2.5 函数结束
流程图
图5-14程序执行流程图
程序代码如下:
#include“stdio.h”
#define MAXNUM 200
voidmystrcat(charstr1[],charstr2[])
{
int i,j;
初始算法
1.初始化字符串1和字符串2;
2.调用函数mystrcat把字符串2连接到字符串1的后面;
3.输出字符串1;
4.结束。
算法细化
步骤2的细化
2.1 定义变量i,j
2.2 利用循环i找出字符串str1的长度
2.2.1 不是结束标志,i++
2.2.2 是结束标志,退出循环
2.3 利用循环j把字符串str2的内容接到str1的后面