标题:请问我要用函数喝指针做哪里出啊.在字符串s中找出ASCII码值最大的字符并放 ...
只看楼主
陈波
Rank: 1
来 自:贵州
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-11-17
结帖率:100%
已结贴  问题点数:20 回复次数:2 
请问我要用函数喝指针做哪里出啊.在字符串s中找出ASCII码值最大的字符并放在前面的位置上,并将该字符前的原字符往后顺序移动。
/*
  Name:
  Copyright:
  Author:
  Date: 02/12/12 22:31
  Description: 在字符串s中找出ASCII码值最大的字符并放在
              前面的位置上并将该字符前的原字符往后顺序移动。
*/
#include<stdio.h>
#include<conio.h>
#include<string.h>
int cswap(char *cp)
{
    int i,j;
    char str[100],t;
    cp=&str[100];
    gets(str);                  
     for(i=0;i<strlen(str)-1;i++)
       {
          for(j=i+1;j<strlen(str);j++)
           {
             if(str[i]>str[j])      
             {
                t=str[i];
                str[i]=str[j];
                str[j]=t;
             }
            
          }        
       }
         for(i=0;str[i]!='\0';i++)
         printf("%c ",str[i]);
             return str[i];     
}

 
int main()
{
    char swap,m;
     printf("请输入字符串");
      swap=cswap(m);
      printf("%d",swap);
      getch();
      return 0;
}

搜索更多相关主题的帖子: Copyright include 字符串 最大的 
2012-12-04 20:32
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
得分:16 
程序代码:
/***************************************************/
/* 在字符串s中找出ASCII码值最大的字符并放在前      */
/*面的位置上,并将该字符前的原字符往后顺序移动     */
/***************************************************/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void StringChange(char *chars)
{
    char *p = chars;
    char key = 127;    //先做一个ASSII码最大的字符
    int i = 0;
    while (!strchr(p, key))    key--;    //找到最大值
    while(chars[i++] != key);
    while(--i)
        chars[i] = chars[i - 1];
    chars[i] = key;
}
int main()
{
    char a[] = "dryuitui";    //乱敲的,额
    StringChange(a);
    printf("%s\n", a);
    return 0;
}


[fly]存在即是合理[/fly]
2012-12-04 22:54
heroinearth
Rank: 10Rank: 10Rank: 10
来 自:云南曲靖
等 级:青峰侠
帖 子:430
专家分:1506
注 册:2011-10-24
得分:4 
你的程序问题:数据不能保存在被调用函数中,因函数调用结束数据也就消失了,cswap形参和实参前后不一致,再你的代码中就是多余的,帮你改了下:
程序代码:
#include<stdio.h>
#include<conio.h>
#include<string.h>
void cswap(char *cp)
{
    int i,j;
    char t;      
    for(i=0;i<strlen(cp)-1;i++)
       {
          for(j=i+1;j<strlen(cp);j++)
           {
             if(cp[i]<cp[j])     
             {
                t=cp[i];
                cp[i]=cp[j];
                cp[j]=t;
             }
            
           } 

       }

}


int main()
{
    char str[100];
     printf("请输入字符串");
     gets(str);
      cswap(str);
      printf("%s",str);
      getch();
      return 0;
}

 
2012-12-05 09:10



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




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

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