首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请编写一个函数,用来删除字符串中的所有空格。 例如,输入asd af aa z67,则输出为asdafaaz67。 注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程
请编写一个函数,用来删除字符串中的所有空格。 例如,输入asd af aa z67,则输出为asdafaaz67。 注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程
admin
2017-02-24
60
问题
请编写一个函数,用来删除字符串中的所有空格。
例如,输入asd af aa z67,则输出为asdafaaz67。
注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
1 #include<stdio.h>
2 #include<ctype.h>
3 #include<conio.h>
4 #include<stdlib.h>
5 void fun(char*str)
6 {
7
8 }
9 main()
10 {
11 char str[81];
12 char Nsg[]="Input a string.";
13 int n;
14 FILE*out;
15 printf(Nsg);
16 gets(str);
17 puts(str);
18 fun(str);
19 printf("*** str:%s\n",str);
20 /*****************/
21 out=fopen("out.dat","w");
22 fun(Nsg);
23 fprintf(out,"%s",Hsg);
24 fclose(out);
25 /*****************/
26 }
选项
答案
void fun(char*str) { int i=0; char*p=str; while(*p) { if(*p!=’ ’)/*删除空格*/ { str[i++]=*p ; } p++; } str[i]=’\0’;/*加上结束符*/ }
解析
本题要求删除所有空格,即保留除了空格以外的其他所有字符。由于C语言中没有直接删除字符的操作,所以对不需要删除的字符采用“保留”的操作。用指针p指向字符串中的每一个字符,每指向到一个字符都判断其是否为空格,若不是空格则保存到str
。
转载请注明原文地址:https://www.kaotiyun.com/show/kMDp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
下面程序的运行结果是______。#include<stdio.h>intf(inta[],intn){if(n>1)returna[0]+f(a+1,n-1);elsereturna[0];}main(){intaa[10]=
变量m的值为8,m的地址为1010,若欲使p为指向m的指针变量,则下列赋值正确的是()。
下列字符数组初始化语句中,不正确的是()。
下列程序的输出结果是()。main(){intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i++<7)if(p[i]%2)j+=p[i];printf("%dXn",j);}
C语言可执行程序的开始执行点是()。
结构化分析方法是面向()的自顶向下、逐步求精进行需求分析的方法。
以下选项中,当x为大于1的奇数时,值为0的表达式是
设有如下三个关系表下列操作中正确的是
以下程序的输出结果是【】。#includemain(){inta[5]={2,4,6,8,10},*p;p=a;p++;printf("%d",*p);}
若有以下函数首部intfun(doublex[10],int*n)则下面针对此函数的函数声明语句中正确的是
随机试题
=()
Whistlingthemerrytune,______
精神分裂症有特征性意义的症状是
下列哪项不是阴水证的临床表现
甲公司向乙公司购买货物,以一张丙公司为出票人的汇票支付货款。乙公司要求丙公司提供担保,乙公司请丁公司为该汇票作保证。丁公司在汇票背书栏签注:“若该汇票出票真实,本公司愿意保证。”后经了解丙公司实际并不存在。丁公司对该汇票承担的责任是()。
当员工不理解工作内容时,就会产生()。
对于消费者需求量影响最大的因素是消费者的收入。()
男人:运动员
设f(χ)=,求f(χ)的间断点并判断其类型.
有以下程序 main( ) { int i; for(i=0;i<3;i++) switch(i) { case 1: printf("%d",i); case 2: printf("%d",i); default: p
最新回复
(
0
)