想问一下各位大神, 为什么我输出的结果是这样子的, 我想输出的是s1:
#include<iostream>using namespace std;
#include"c.h"
int main()
{
sqstr s1, t1, str;
input(s1, "dasczxca");
input(t1, "dascxzfe");
cout<<"s1: ";
output(s1);
cout<<"t1: ";
output(t1);
str = maxstr(s1, t1);
cout<<"str: ";output(str);
cout<<str.length<<endl;
return 0;
}
#define MaxSize 100
typedef struct
{
char data;
int length;
}sqstr;
void input(sqstr &s, char str[])
{
int i = 0;
while(str != '\0')
{
s.data = str;
i++;
}
s.length = i;
}
void output(sqstr s)
{
int i;
for(i=0; i < s.length; i++)
{
cout<<s.data;
cout<<endl;
}
}
sqstr maxstr(sqstr s, sqstr t)
{
sqstr str;
int midx = 0, mlen = 0, tlen, i = 0, j, k;
while(i < s.length)
{
j = 0;
while(j < t.length)
{
if(s.data == t.data)
{
tlen = 1;
for(k=1; i+k < s.length && j+k < t.length && s.data == t.data; k++)
{
tlen++;
}
if(tlen > mlen)
{
midx = i;
mlen = tlen;
}
j = j+1;
}
else j++;
}
i++;
}
for(i=0; i < mlen; i++)
{
str.data = s.data;
}
str.length = mlen;
return str;
}
输出结果:
s1: d
a
s
c
z
x
c
a
t1: d
a
s
c
x
z
f
e
str: d
a
s
c
4
Press any key to continue
s1: dasczxca
t1: dascxzfe
str: dasc
4
Press any key to continue
这是我想要的结果显示 我看了半天也不知道为什么它是一行一个一行一个输出的
求求大神!!! 你for循环里面不要放cout<<endl,这个语句就是换行的意思,所以你每一次输出都紧跟了一次换行。把这个语句移动到for循环的括号后面,效果就会是输出所有字符再换行 倒戈卸甲 发表于 2020-11-29 06:39
你for循环里面不要放cout
谢谢大神好了!{:5_91:}
页:
[1]