大家帮我看看程序有什么问题(去串中间多余空格)
本程序是为了去掉字符串中间多余空格错误地方在下面红色字那,while循环回来再求长就变为0
#include <stdio.h>
#include<stdlib.h>
#include <conio.h>
#include<string.h>
/*定义串的结构*/
#define MAXSIZE 256
typedef struct
{ char data[MAXSIZE];/*数组存储串*/
int Length; /*串的长度*/
}SeqString;
/*求串长*/
int StrLength(char s[])
{
int i=0;
while (s[i]!='\0')
i++;
return(i);
}
/*去掉中间多余空格*/
void QuKongGe(char *s){
int l;/*求数组长度*/
int k=0;/*记空格的个数*/
int i=0,j=0;
while(s[i]!='\0'){
l=StrLength(s);//循环求长为何第二次就会出现错误
printf("%d\n",l);
if(s[i]==' '&&k==0){
k++;
i++;
}else if(s[i]=' '&&k==1){
for(j=i;j<l;j++){
s[j]=s[j+1];
}
s[j]='\0';
}else{
k=0;
i++;
}
}
}
void main()
{
SeqString s;
printf("请输入字符串:");
gets(s.data);
QuKongGe(s.data);
s.Length=StrLength(s.data);
printf("字符串长度是:%d\n",s.Length);
printf("字符串:");
puts(s.data);
getch();
}
[ 本帖最后由 wszxs26 于 2010-11-25 21:13 编辑 ]