C语言编程:输入字符串s,将s中的前导空格和尾随空格删去,中间连续多个空格缩减
3个回答
2011-06-08
展开全部
#include <stdio.h>
#include <string.h>
void main()
{
int i,j,k,len;
char str[200];
printf("\nEnter a string:\n");
gets(str);
len=strlen(str);
j=0;
for(i=0; i<len; i++)
{
if(str[i]==' ')//删除前面的空格
{
j=j+1;
}
else break;
}
k=0;
for(i=len-1; i>0; i--)
{
if(str[i]==' ')//删除后面的空格
{
k=k+1;
}
else break;
}
for(i=j; i<len-k; i++)
str[i-j]=str[i];
str[i-j]='\0';
len=strlen(str);
j=0;
k=0;
for(i=0; i<len; i++)
{
if(str[i]!=' ') //缩减中间的空格
{
str[j]=str[i];
j=j+1;
k=0;
}
else
{
if(k==0)
{
str[j]=str[i];
j=j+1;
}
k=1;
}
}
str[j]='\0';
puts(str);
}
#include <string.h>
void main()
{
int i,j,k,len;
char str[200];
printf("\nEnter a string:\n");
gets(str);
len=strlen(str);
j=0;
for(i=0; i<len; i++)
{
if(str[i]==' ')//删除前面的空格
{
j=j+1;
}
else break;
}
k=0;
for(i=len-1; i>0; i--)
{
if(str[i]==' ')//删除后面的空格
{
k=k+1;
}
else break;
}
for(i=j; i<len-k; i++)
str[i-j]=str[i];
str[i-j]='\0';
len=strlen(str);
j=0;
k=0;
for(i=0; i<len; i++)
{
if(str[i]!=' ') //缩减中间的空格
{
str[j]=str[i];
j=j+1;
k=0;
}
else
{
if(k==0)
{
str[j]=str[i];
j=j+1;
}
k=1;
}
}
str[j]='\0';
puts(str);
}
展开全部
#include<stdio.h>
#include<string.h>
#define MAX_INPUT_BUFFER 256
char* _trim(char *Buffer)
{
char *OutBuffer;
char *TailPtr;
int BufferStrLen;
int i=0;
OutBuffer=Buffer;
BufferStrLen=strlen(Buffer);
TailPtr=Buffer+BufferStrLen;
for(;;)
{
if(*Buffer=='\0')
return OutBuffer;
if(*Buffer==' ')
{
i++;
Buffer++;
OutBuffer=Buffer;
}
else
{
printf("删除前面空格: %d个\r\n",i);
break;
}
}
i=0;
for(;;)
{
TailPtr--;
if(*TailPtr!=' ')
{
printf("删除后面空格: %d个\r\n",i);
*(TailPtr+1)='\0';
break;
}
i++;
}
return OutBuffer;
}
void main()
{
char InputBuffer[MAX_INPUT_BUFFER];
char *OutputBuffer;
printf("输入字符串:\r\n",InputBuffer);
gets(InputBuffer);
printf("输入字符串长: %d\r\n",strlen(InputBuffer));
OutputBuffer=_trim(InputBuffer);
printf("\r\n输出字符串:\r\n");
printf("%s\r\n",OutputBuffer);
printf("输出字符串长: %d\r\n",strlen(OutputBuffer));
}
#include<string.h>
#define MAX_INPUT_BUFFER 256
char* _trim(char *Buffer)
{
char *OutBuffer;
char *TailPtr;
int BufferStrLen;
int i=0;
OutBuffer=Buffer;
BufferStrLen=strlen(Buffer);
TailPtr=Buffer+BufferStrLen;
for(;;)
{
if(*Buffer=='\0')
return OutBuffer;
if(*Buffer==' ')
{
i++;
Buffer++;
OutBuffer=Buffer;
}
else
{
printf("删除前面空格: %d个\r\n",i);
break;
}
}
i=0;
for(;;)
{
TailPtr--;
if(*TailPtr!=' ')
{
printf("删除后面空格: %d个\r\n",i);
*(TailPtr+1)='\0';
break;
}
i++;
}
return OutBuffer;
}
void main()
{
char InputBuffer[MAX_INPUT_BUFFER];
char *OutputBuffer;
printf("输入字符串:\r\n",InputBuffer);
gets(InputBuffer);
printf("输入字符串长: %d\r\n",strlen(InputBuffer));
OutputBuffer=_trim(InputBuffer);
printf("\r\n输出字符串:\r\n");
printf("%s\r\n",OutputBuffer);
printf("输出字符串长: %d\r\n",strlen(OutputBuffer));
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
s.trim()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询