|
#include<iostream>
#include"function.h"
using namespace std;
int main()
{
char st0[100] = { 0 };
char st1[100] = { 0 };
char c = '0';
int i = 0;
c = getchar();
while (c != '\n')
{
st0[i] = c;
c = getchar();
++i;
}
i = 0;
c = getchar();
while (c != '\n')
{
st1[i] = c;
c = getchar();
++i;
}
cout << "输入完成" << endl;
f_strcat(st0, st1);
string cbnt;
cbnt = st0;
cout << cbnt << endl;
/*char st0[100] = {0};
char st1[100] = {0};
char c='0';
c = getchar();
for (int i = 0; c != '\n'; ++i)
{
st0[i] = c;
c = getchar();
}
c = getchar();
for (int i = 0; c != '\n '; i++)
{
st1[i] = c;
c = getchar();
}
cout << "输入完成" << endl;
f_strcat(st0, st1);
string cbnt;
cbnt = st0;
cout << cbnt << endl;*/
return 0;
}
为啥被注释掉的那段代码编译运行后会一直卡在for循环里面出不来,while循环的那段运行得很好
function里面是
void f_strcat(char* orgn, char* lt)
{
int i = 0;
for (; *(orgn + i) != '\0'; ++i);
for (int idx=0; *(lt+idx)!='\0'; ++idx)
{
*(orgn + i) = *(lt + idx);
++i;
}
}
用来模拟strcat
逻辑很正确,只是第二个for的'\n'里多打了个空格,值就变了。现行C语言标准里单引号是可以包含多个字符的
|
上一篇: 求助下一篇: 求助
|