设计一个c语言程序:输入一个带有空格的字符串,比如i love you要求删除字符串中的所有空格显示
iloveyou.只能用三个函数scanfprintfgets要能用visualc++打开,最好写上每个语句的意义...
iloveyou .只能用三个函数scanf printf gets 要能用visual c++打开,最好写上每个语句的意义
展开
5个回答
展开全部
#include <stdio.h>
int main(void)
{
char str[80] = {0}; /*定义一个字符串*/
char *p, *q; /*定义两个字符指针*/
printf("Please input a string: ");
gets(str); /*用scanf("%s",str)会遇到空格就断开了*/
printf("str = %s\n", str);
p = str; /*指针p指向字符串str*/
while(*p != '\0') /*判断,不是字串结束符就继续*/
{
if(*p == ' ') /*判断是空格执行后面操作*/
{
q = p; /*重新定位指针q的位置*/
while(*q != '\0') /*用以剔除空格*/
{
*q = *(q+1); /*把后一个字符覆盖前一个字符,把空格覆盖掉*/
q++;
}
}
p++;
}
printf("str = %s\n", str);
return 0;
}
展开全部
#include<stdio.h>
void main()
{char string[100];\\*定义字符串数组
int i;
printf("请输入要处理的字符串:");
gets(string);
for(i=0;string[i]!='\0';i++)\\**for循环语句并非函数,所以我用了
{if(string[i]!=32)\\**32是空格键的ascll码
printf("%c",string[i]);
}printf("\n");
}
可以提示你一下,你可以尝试一下link函数。
而且我这个是最简约的答案了
void main()
{char string[100];\\*定义字符串数组
int i;
printf("请输入要处理的字符串:");
gets(string);
for(i=0;string[i]!='\0';i++)\\**for循环语句并非函数,所以我用了
{if(string[i]!=32)\\**32是空格键的ascll码
printf("%c",string[i]);
}printf("\n");
}
可以提示你一下,你可以尝试一下link函数。
而且我这个是最简约的答案了
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把输入的字符串既作为源又作为目标,设立int型变量i为源下标记数,j为目标下标记数;由源向目标按字符依次拷贝,当目标接收到空格时下标变量j停止增量,最后目标收到'\0'后结束。举例如下:
//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(void){
char str[500];
int i=0,j=0;
printf("Please enter a string...\nstr=");
gets(str);
while(str[j]=str[i++])
if(str[j]!=' ') j++;
printf("The new string is:\n%s\n",str);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-06-07
展开全部
#include<stdio.h>
int main(void)
{
char str[80];/*定义一个字符串*/
int i,j;/*两个临时变量,计数用*/
gets(str);/*用scanf("%s",str)会遇到空格就断开了*/
for(i=0;str[i]!='\0';i++)/*判断,不是字串结束符就继续*/
if(str[i]==' ')/*判断是空格执行后面操作*/
for(j=i;str[j]!='\0';j++)/*用以剔除空格*/
str[j]=str[j+1];/*把后一个字符覆盖前一个字符,把空格覆盖掉*/
printf("%s\n",str);/*格式输出*/
return 0;
}
int main(void)
{
char str[80];/*定义一个字符串*/
int i,j;/*两个临时变量,计数用*/
gets(str);/*用scanf("%s",str)会遇到空格就断开了*/
for(i=0;str[i]!='\0';i++)/*判断,不是字串结束符就继续*/
if(str[i]==' ')/*判断是空格执行后面操作*/
for(j=i;str[j]!='\0';j++)/*用以剔除空格*/
str[j]=str[j+1];/*把后一个字符覆盖前一个字符,把空格覆盖掉*/
printf("%s\n",str);/*格式输出*/
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
#include <string.h>
int main()
{
int i,j,len;
char a[1000];
gets(a);
len=strlen(a);
for(i=0;i<len;i++){
if(a[i]!=' ')
putchar(a[i]);
}
putchar('\n');
}
首发,请采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询