主题:[讨论]关于顺序串的一个讨论
要求把字符串中的单词按顺序输出.我下面的这个程序不知道为什么不能正确运行,请大家看看问题处在那里,谢谢.
#define MAXNUM 100
#include<stdio.h>
#include<string.h>//要用到字符串比较函数
typedef struct Seqstring//顺序串的结构
{
char str[MAXNUM];//顺序串最大字符数
int len;//顺序串实际长度
} Seqstring;
void HandleSeqstring (Seqstring s) {
char t[20][20];
char str[20];
int i,j,m,n,p,q,k=0;
//接下来要把单词取出来
for(m=0,n=0;n<s.len;m++,n++)
{
if(s.str[n]!=' ')
t[k][m]=s.str[n++];
else
{
k++;
m=0;
}
}
//接下来将要对取出的单词进行排序
for(i=0;i<k-1;i++)
{
for(j=i;j<=k-1;j++)
{
if(strcmp(t[i],t[j])>0)
{
strcpy(str,t[i]);
strcpy(t[i],t[j]);
strcpy(t[j],str);
}
}
}
//接下来就要输出单词
printf("\n\n\n\n\nNow Output the Words:\n\n\n");
for(i=0;i<k;i++)
puts(t[i]);
}
void main()
{
int x;
Seqstring st;
printf("\nInput\n");
gets(st.str);
printf("output\n");
puts(st.str);
for(x=0;st.str[x]!='\0';x++)
st.len=x;
HandleSeqstring(st);
}
#define MAXNUM 100
#include<stdio.h>
#include<string.h>//要用到字符串比较函数
typedef struct Seqstring//顺序串的结构
{
char str[MAXNUM];//顺序串最大字符数
int len;//顺序串实际长度
} Seqstring;
void HandleSeqstring (Seqstring s) {
char t[20][20];
char str[20];
int i,j,m,n,p,q,k=0;
//接下来要把单词取出来
for(m=0,n=0;n<s.len;m++,n++)
{
if(s.str[n]!=' ')
t[k][m]=s.str[n++];
else
{
k++;
m=0;
}
}
//接下来将要对取出的单词进行排序
for(i=0;i<k-1;i++)
{
for(j=i;j<=k-1;j++)
{
if(strcmp(t[i],t[j])>0)
{
strcpy(str,t[i]);
strcpy(t[i],t[j]);
strcpy(t[j],str);
}
}
}
//接下来就要输出单词
printf("\n\n\n\n\nNow Output the Words:\n\n\n");
for(i=0;i<k;i++)
puts(t[i]);
}
void main()
{
int x;
Seqstring st;
printf("\nInput\n");
gets(st.str);
printf("output\n");
puts(st.str);
for(x=0;st.str[x]!='\0';x++)
st.len=x;
HandleSeqstring(st);
}