标题:帮我看看如何改进!新手
只看楼主
chenxiangcic
Rank: 1
来 自:四川井研
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-9-11
结帖率:0
已结贴  问题点数:20 回复次数:4 
帮我看看如何改进!新手
输入一个若干字符的字符串,分别找出其中的字母和数字,其余的字符一概忽略。将重复的去掉后,分别按从小到大的顺序排列后输出。

#include"stdio.h"
main()
{
  char str[50],temp;
  int n,i,k;
  printf("Input a string:");
  scanf("%s",str);
  printf("%s\n",str);

    /*此只留数字,大小写字母*/   
  for(n=0;str[n]!='\0';n++)
    {
      if((str[n]>=48&&str[n]<=57)||(str[n]>=65&&str[n]<=90)||(str[n]>=97&&str[n]<=122))

       continue;

         else
            for(k=n; str[k]!='\0';k++)
                str[k]=str[k+1];
                n--;
    }
   printf("\n%s",str);
   printf("\n^o^");

    /*剔除重复的字符*/
   for(n=0;str[n]!='\0';n++)
     for(k=n+1;str[k]!='\0';k++)
      if(str[n]==str[k])
         for(i=k;str[i]!='\0';i++)
            {
            str[i]=str[i+1];
            k--;
           }
   printf("\n%s",str);
   
    /*字符排序*/
   for(n=0;str[n]!='\0';n++)
      for(i=n+1;str[i]!='\0';i++)
         if(str[n]>str[i])
           {
             temp=str[n];
             str[n]=str[i];
             str[i]=temp;
            
           }
      
  printf("\n%s",str);
}


[ 本帖最后由 chenxiangcic 于 2011-10-12 19:36 编辑 ]
搜索更多相关主题的帖子: 字母 如何 continue include 字符串 
2011-10-12 19:08
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
得分:7 
/*此只留数字,大小写字母*/   
  for(n=0;str[n]!='\0';n++)
  {
      if((str[n]>=48&&str[n]<=57)||(str[n]>=65&&str[n]<=90)||(str[n]>=97&&str[n]<=122))
      {
          continue;
      }
      else
      {
          for(k=n; str[k]!='\0';k++)
          {
              str[k]=str[k+1];
          }
           n--;
       }
    }

总有那身价贱的人给作业贴回复完整的代码
2011-10-13 07:30
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
得分:7 
整合几个基本功能

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2011-10-13 08:00
NeXT__00
Rank: 2
等 级:论坛游民
帖 子:51
专家分:98
注 册:2011-9-5
得分:7 
程序代码:
#include "stdafx.h"
#include "conio.h"


int main(int argc,char *argv[])
{
    char str[50],temp;
    int n,i,k;

    printf("Input a string:");
    scanf("%s",str);

    printf("%s\n",str);

    /*只留数字,字母*/
    for(n=0;str[n]!='\0';n++)
    {
        if((str[n]>=48&&str[n]<=57)||(str[n]>=65&&str[n]<=90)||(str[n]>=97&&str[n]<=122))
            continue;
        else
        {
            for(k=n;str[k]!='\0';k++)
            {
                str[k]=str[k+1];
            }
            str[k]='\0';
            n--;
        }
    }

    printf("%s",str);
    printf("\n");


    /*删除重复字符*/
    for(n=0;str[n]!='\0';n++)
        for(k=n+1;str[k]!='\0';k++)
        {
            if(str[n]==str[k])
            {
                for(i=k;str[i]!='\0';i++)
                    str[i]=str[i+1];
                str[i]='\0';
                k--;
            }
        }
    printf("%s\n",str);
    

    /*字符排序*/

    for(n=0;str[n]!='\0';n++)
        for(k=n+1;str[k]!='\0';k++)
            if(str[n]>str[k])
            {
                temp=str[n];
                str[n]=str[k];
                str[k]=temp;
            }
    printf("%s\n",str);
    getch();
    return 0;
}
2011-10-13 09:12
chenxiangcic
Rank: 1
来 自:四川井研
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-9-11
得分:0 
谢谢!就是想整合,但绕来绕去整晕了,才分开的。

chenxiangcic
2011-10-13 19:08



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-352222-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.422005 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved