C语言(不用函数和指针)整理字符串 将字符串的前导和后随空白符删除 并将字符串中多个空白符只保留一个
C语言题目(不能用函数和指针,我们才学到数组这一章):整理字符串将字符串的前导空白符和后随空白符删除并将字符串中非空白字符串之间的连续的多个空白符只保留一个而去掉多余的空...
C语言题目(不能用函数和指针,我们才学到数组这一章):整理字符串 将字符串的前导空白符和后随空白符删除 并将字符串中非空白字符串之间的连续的多个空白符只保留一个 而去掉多余的空白符.
比如 输入 i am a boy
变成 i am a boy.
大神们救救我吧!~ 好的话可以追加分 展开
比如 输入 i am a boy
变成 i am a boy.
大神们救救我吧!~ 好的话可以追加分 展开
3个回答
展开全部
我用了最原始的方法,你看一下可能看懂,呵呵。
#include<stdio.h>
int main()
{
int index=0,fi=0;
char str[100];
gets(str);//输入字符串
while(str[index] == ' ')//去除首空格
{
fi = index;
while(str[fi]!='\0')//移动后面的字符串覆盖空格
{
str[fi] = str[fi+1];
fi++;
}
}
while(str[index] != '\0')//去除中间多余空格
{
if(str[index]==' '&&str[index-1]==' ')
{
fi = index;
while(str[fi]!='\0')
{
str[fi] = str[fi+1];
fi++;
}
index--;
}
index++;
}
if(str[index-1] == ' ')//去除句末空格
str[index-1] ='\0';
puts(str);
getch();
return 0;
}
追问
getch(); 这个是什么东西???VS2010不能识别 不过我删了也可以用的
追答
删了就可以了,是我的编译器自带的,
展开全部
#include "stdio.h"
#include "string.h"
int main(int argc,char* argv[])
{
char szS[100] = {0};
char szD[100] = {0};
int nD = 0;
scanf("%[0-9a-zA-Z ]s",szS);
for (int i=0;i<strlen(szS);i++)
{
if (' '!=szS[i]||(' '!=szS[i+1] && 0!=szS[i+1]))
{
szD[nD++] = szS[i];
}
}
if (' '==szD[0])
{
for (i=0;i<nD-1;i++)
{
szD[i] = szD[i+1];
}
szD[nD-1] = 0;
nD--;
}
if (' ' == szD[nD-1])
{
szD[nD-1] = 0;
}
printf("%s\n",szD);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
void main()
{
char c[30]=" i am a boy ";
int base=-1;
int index=0;
int space_flag=0;
while(c[index]!='\0')
{
if(c[index]==' ')
{
if(base==-1)
{
space_flag=0;
}
else
{
space_flag=1;
}
}
else
{
base++;
if(space_flag==1)
{
c[base]=' ';
base++;
}
c[base]=c[index];
space_flag=0;
}
index++;
}
base++;
c[base]='\0';
printf("%s",c);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询