#include
#include"stringh"
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('\n');
return
0;
}
//这段程序错误太多,而且代码风格太乱;
//不过估计您是个初学者,就帮你的程序按你思路修改了
//运行结果如下:
模仿拼音输入法
请输入拼音wo
wo
0挝 1莴 2涡 3窝 4蜗 5倭 6踒 7喔 8我 9肟 10沃 11卧 12偓 13握 14幄
15渥 16龌 17涴 18硪 19斡 请输入对应的序号选字:2
涡
//修改后程序如下,希望对你有用!
#include<stdioh>
#include<stringh>
int main() //是int还是void,根据编译器,我用的是CodeBlocks需要用int
{
char wo[]= {"wo"};
char wo_ch[]= {"挝莴涡窝蜗倭踒喔我肟沃卧偓握幄渥龌涴硪斡"};
printf("%d:%s\n", strlen(wo_ch), wo_ch);
//char str_input[3];
unsigned int i=0,str_ch_len=strlen(wo_ch);
printf("模仿拼音输入法\n");
printf("请输入拼音wo\n");
//scanf("%s",str_input);
char str_input[3];
gets(str_input);//输入拼音
//if(str_input==wo)//修改如下(字符串是不能直接比较的!)
if (0==strcmp(str_input,wo))
{
for(i=0; i<str_ch_len; i+=2)
//printf("%d%c "i,wo_ch[i]); //修改如下(双引号之后应该有,号)
printf("%d%c%c ",i/2,wo_ch[i],wo_ch[i+1]);
last:
printf("请输入对应的序号选字:");
//scanf("%d" &i); //修改如下
unsigned int n;
scanf("%u", &n);
if (2n>str_ch_len)
{
printf("你要选的字符不存在\n");
goto last;
}
else
{
printf("%c%c",wo_ch[2n],wo_ch[2n+1]);
}
}
else
{
printf("对不起,没有找到该拼音的字库\n");
}
return 0;//如果主函数是void,删除此行!
}
#include<stdioh>
#include<stringh>
void main()
{
void sort(char (p)[20]);
char a[5][20];//五行20列
int i;
printf("请输入5个字符串:\n");
for(i=0;i<5;i++)//这里输入五个字符串
gets(a[i]);
sort(a);//调用函数进行排列
}
void sort(char (p)[20])
{
char a[20];
int i,j;
for(i=0;i<4;i++)//这里把每一行看做一个元素五个要进行4次比较
for(j=0;j<20;j++)//这里是上下相邻的两行之间对应元素进行比较
{
if(p[i][j]>p[i+1][j])//遇到上行大于交换上下两行
{
strcpy(a,p[i]);
strcpy(p[i],p[i+1]);
strcpy(p[i+1],a);
}
break;
}
printf("五个串按从小到大排列如下:\n");
for(i=0;i<5;i++)
puts(p[i]);
printf("\n");
}
#include
void fun(char s)
{ int i, n, k; char c;
n=0;
for(i=0; s[i]!='\0'; i++) n++;
/found/
if(n%2==0) k=n-___1___ ;
else k=n-2;
/found/
c=___2___ ;
for(i=k-2; i>=1; i=i-2) s[i+2]=s[i];
/found/
s[1]=___3___ ;
}
main()
{ char s[80]="abcdefgh";
printf("\nThe original string is : %s\n",s);
fun(s);
printf("\nThe result is : %s\n",s);
}
自己填空吧
以上就是关于C语言程序:题目:从键盘输入一个字符串,按照字符顺序从小到大进行排序,并要求删除重复的字符。答案如下全部的内容,包括:C语言程序:题目:从键盘输入一个字符串,按照字符顺序从小到大进行排序,并要求删除重复的字符。答案如下、C语言拼音打字程序问题、一道c语言程序题: 输入5个字符串,按字典顺序将其重新排列输出。用字符串指针实现。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)