C语言编程:从键盘输入一个有空格的字符串,删除所有重复字符,按字符升序输出在屏幕上。怎么做?
1、首先,随便创建一个有main方法的类。
2、定义一个字符串变量,这里给变量赋值,前后都留有一个空格。
3、先运行一遍,看输出效果,可以看到百度包括空格的几个字符都打印出来了。
4、为了更加清晰,用字符串对象另外一个方法“length()”得到此字符串的长度为6, 说明的确是“百度”加两个空格的长度。
5、用trim()方法返回去掉两边空格的操作。再定义一个字符串变量b,让其等于字符串a调用了trim()方法后的返回值,然后运行打印出b的字符,可以看到b的字符串格式相对a有变化。
6、用字符串对象另外一个方法“length()”得到此字符串的长度为4。
#include
#include"string.h"
int main(void)
{
char str1[500]={0},str2[256]={0};//定义二个数组,并赋初值为0
int i;
gets(str1);//读取一个字符串
for(i=0;str1[i];i++)
{
str2[str1[i]]=1;//str1中每个字符的assic码作为str2的下标值,并把对应位置填充为1,同一个字符的assci值相同,所以这样就去掉了重复字符
}
for(i=0;i!=256;i++)
if(str2[i]==1)//判断数组中被str1填充的位置,填充的是非0值,没填充的是0值
printf("%c",i);//输出str2的下标值,对应str1中的字符值
putchar('
');
return 0;
}
代码文本:
#include "stdio.h"
int main(int argc,char *argv[]){
char a[101],*p,*px,t;
printf("Input a string...
");
for(p=a,t=0;t<100;t++)//输入字符串
if((*(p+t)=getchar())=='
')
break;
*(p+t)='\0';
for(p=a;*p;p++)//排序
for(px=p+1;*px;px++)
if(*p>*px){
t=*p;
*p=*px;
*px=t;
}
for(p=a;*p;p++){//删除重复字符
for(t=1;*p==*(p+t);t++);
if(t>1){
for(px=p;*px=*(px+t);px++);
p--;
}
}
printf(*a ? "
%s
" : "
(null)
",a);//输出
return 0;
}
供参考。
C语言编程:从键盘输入一个有空格的字符串,删除所有重复字符,按字符升序输出在屏幕上。怎么做?视频
相关评论:
阎锦受int main(int argc,char *argv[]){ char a[101],*p,*px,t;printf("Input a string...\\n");for(p=a,t=0;t<100;t++)\/\/输入字符串 if((*(p+t)=getchar())=='\\n')break;(p+t)='\\0';for(p=a;*p;p++)\/\/排序 for(px=p+1;*px;px++)if(*p>*px){ t=*p;p=*px...
阎锦受1、首先,随便创建一个有main方法的类。2、定义一个字符串变量,这里给变量赋值,前后都留有一个空格。3、先运行一遍,看输出效果,可以看到百度包括空格的几个字符都打印出来了。4、为了更加清晰,用字符串对象另外一个方法“length()”得到此字符串的长度为6, 说明的确是“百度”加两个空格的长度。
阎锦受1、首先需要打开编程软件。2、输入以下程序:#include <stdio.h>int main(){ char str[40]; scanf("%s",&str); printf("%s",str); return 0;}。3、然后按F5运行程序。4、然后输入想要输入的字符串。5、按回车键,就会弹出你输入的字符串。6、注意字符串的大小,改变中括号中的数字改变输入...
阎锦受void main(){ char a;\/\/定义一个字符 printf("请输入一个字符:");\/\/文字提示 scanf("%c", &a);\/\/输入一个字符 printf("其后续字符为:");\/\/文字提示 printf("%c\\n", a + 1);\/\/输出其之后的字符 } 程序运行结果如下:
阎锦受voidmain(){ charch;inta;ch=getchar();if(ch>='a'&&ch<='z')ch='1';if(ch>='A'&&ch<='Z')ch='2';if(ch=='')ch='3';switch(ch){ case'1':printf("xiao\\n");break;case'2':printf("da\\n");break;case'3':printf("空格\\n");break;default:printf("qita");} } ...
阎锦受flag;\/\/输入一串字符printf("Input a string:");gets(s);\/\/输入想要查找的字符printf("Input another string:");gets(d);\/\/调用函数,输出结果flag=SearchString(s,d);if(flag==-1)printf("Not found!\\n");elseprintf("Searching results:%d\\n",flag);system("pause");...
阎锦受include <stdio.h>#include <stdlib.h>int main(){ int n,a,b,c,d,e,f,g,h,i,j,counter=0,num; a=0; b=0; c=0; d=0; e=0; f=0; g=0; h=0; i=0; j=0; printf("Please enter the number:\\n"); scanf("%d",&n); ...
阎锦受include "stdio.h"int main(){ char s[100],c;int i;printf("字符串:");gets(s);printf("字符:");c=getchar();for(i=0;s[i]!='\\0'&&s[i]!=c;i++);if(s[i]=='\\0') printf("Not found.\\n");else printf("该元素的下标:%d\\n",i);} ...
阎锦受}#include <stdio.h>main(){int a,b;printf("请输入年份和月份:\\n");scanf("%d%d",&a,&b);if (a%4==0&&a%100!=0)if(b==2)printf("这个月有29天\\n");else if (b==1||b==3||b==5||b==7||b==8||b==10||b==12)printf("这个月有31天\\n");else printf("这个...
阎锦受void main(){ int countd=0,countx=0,countk=0,counts=0,countq=0;\/\/分别用来对大写字母、小写字母、空格、数字、其他字符做计数 char s[100],*p;printf("请输入一个字符串:");int i=0;while((s[i]=getchar())!='\\n')i++;p=&s[0];while(*p!='\\n'){ if((*p>='A')&&...