|
//"不用系统提供的strcat函数,自己使用字符数组编写一个函数,实现两个字符串的连接功能。"
#include "stdafx.h"
#include <iostream>
using namespace std;
int i = 0, j = 0, x =0, y=0;
char mystrcat(char des[], const char src[])
{
x = strlen(des), y = strlen(src);
for (i = 0; i <= x;i++)
{
if (des[i]=='\0')
{
for (j = 0; j <= y;j++)
{
if (src[j]!='\0')
{
des[i + j] = src[j];
}
else
{
/*continue;*/
break;
}
}
}
}
return des[i+j];
}
int _tmain(int argc, _TCHAR* argv[])
{
char des[] = "I want to ";
char src[] = "fly,fly. ";
mystrcat(des, src);
cout <<"des= "<< des << endl;
return 0;
}
代码可以生成,但是调试时出现图片上的弹框,并且显示的结果也不是太符合,想请教大佬们是什么原因?该如何处理?
楼主的目的是将 src 连接 到 des 上,也就是说将 mystrcat 函数的第2个参数的字符串连接到第一个参数的字符串尾部,这样就要求保证目标空间足够大,足够容纳得下第1个字符串和第2个字符串。
但是楼主的 des 数组空间并不大,或者说只装了 "I want to "; 这个字符串。将 des 的定义改成如下就可以了:
char des[50] = "I want to ";
|
-
代码可以生成,但是调试时出现以上弹框,并且显示的结果也不是太符合,想请教大佬们是什么原因?该如何处理 ...
上一篇: 学到strcat时遇到一个疑问下一篇: 第八课 保留两位小数问题
|