C语言程序在字符串中找出ASCⅡ最大字符放在第一位将字符前原字符向后顺序移动

作者&投稿:幸琼 (若有异议请与网页底部的电邮联系)
在字符串str中找出ASCⅡ码值最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。~

q=p+i是使指针向后移动。其实楼主的程序中不用指针也是可以的:
fun(char *p)
{
int i=0,pos=0;//pos记录最大字符的位置
char max = p[0];
for(i=1;p[i];i++)
{
max=p[i];//保存最大字符
pos=i; //及其位置
}
for(i=pos;i>0;i--) p[i]=p[i-1];//将最大字符前的所有字符后移
p[0]=max;
}

什么叫“不能用fun函数“,fun函数是什么函数?
另外“我有一种思路可是就是不能用代码实现“这句话,什么叫”有思路但是不能用代码实现",这就是老师经常说的“眼高手低”啊。不能因为不知道怎么用代码实现就不去编,否则的话永远也学不会的。
#include#includevoid Change(char* p){ char* pstr = p; char* pMaxCh = p; char cMaxVal = 0; /* 先查找最大的字符所在位置 */ while ('\0' != *pstr) { if (*pstr > cMaxVal) { cMaxVal = *pstr; pMaxCh = pstr; } pstr++; } /* 把pMaxCh之前的字符顺序往后移 */ for (; pMaxCh != p; pMaxCh--) { *pMaxCh = *(pMaxCh - 1); } /* 把最大的字符放在第一个位置上 */ *p = cMaxVal;}main(){ char str[] = "Hello, world"; Change(str); printf(str);}

程序可分以下几步执行:

    1、遍历字符串,搜索ASCII最大的字符,记录其位置和值

    2、从记录位置前一个位置开始到第一个位置,将字符依次后移一个位置

    3、将记录的字符放在第一位

代码如下:

void process(char *str)
{
int i;
int loc = 0;
char c = '\0';

for (i = 0; i < strlen(str); i++)
if (str[i] > c)
{
c = str[i];
loc = i;
}

for (i = loc - 1; i >= 0; i--)
str[i + 1] = str[i];

str[0] = c;
}


#include <stdio.h>
#include <stdlib.h>
int main()
{
char s[]="123abcZXY",b;
int i,j,L,big=0;
printf("orig string: %s\n",s);
L = strlen(s);
for (i=1;i<L;i++) if (s[i] > s[big] ) big=i;
b=s[big];
for (i=big;i>0;i--) s[i]=s[i-1];
s[0]=b;
printf("results: %s\n",s);
return 0;
}

--
orig string: 123abcZXY
results: c123abZXY


用C语言编写一个在字符串中插入一个字符的程序
s='\\0';\/*在字符串s的末尾添加字符串结束标志*\/ }

C语言 请编写程序实现以下功能:在字符串中所有数字字符前加一个$字符...
\/*对于数字字符先写一个$符号,再写该数字字符*\/ if(t[i]>='0'&&t[i]<='9'){ s[j++]='$';s[j++]=t[i];} \/*对于非数字字符原样写入串s*\/ else s[j++]=t[i];s[j]='\\0'; \/*在串s结尾加结束标志*\/ return0;} intmain(){ chars[80];printf("Enterastring:");scan...

C语言:编写一个程序实现以下功能:在字符串中找出最大的字符并放在第一...
伪码,就是读取字符串每个字符比较并记录下标,得到最大字符和下标 接着申请一个新的字符串,第一个放入最大字符,以后顺序放并跳过记录的下标

C语言“在字符串中删除指定的字符”?怎么编写程序
从字符数组中删除特定的字符,即输入要删除的指定字符,利用for循环找到非指定字符,将非指定字符输出即可。以下为具体的实现方法:include<stdio.h> int main(){ char str[100],c;int j,k;printf("please input a string:");gets(str);printf("\\nEnter a character:");c=getchar();for(j=...

在C语言中,要求编写程序在给定的字符串中查找指定的字符。
chara,ch,str[80];scanf

汇编语言$在字符串中是什么意思?
代表当前指令的地址,如:data segment str1 db a,b,c,d leng equ $-str 就是当前地址减去str1的初始地址,即可得到str1的长度。在字符串中是结束标志,就是字符串遇到$才会结束,类似于c语言中字符串中结尾的'0'。

用c语言写一个程序,实现在字符串的内部增加字符串
"); \/\/显示错误提示 return ;} \/\/结束函数 for(k=i;k>=n;k--) \/\/从s1最后一个开始直到第n个字符依次后移 s1[k+j]=s1[k]; \/\/后移j个位置 for(k=0;k<j;k++) \/\/依次把s2内容复制到s1相应位置 s1[k+n]=s2[k];} \/\/完成复制并结束函数 int ...

用c++语言编写一个程序:如何在字符串里查找第一个不重复的字母,即只出...
{ cout<< a << " 第一个不重复的字母: "<< a[i] << endl; break; } }} int main(){\/\/addbccadfeg字符串则输出b;\/\/addbccabfeg字符串则输出f;string a="addbccadfeg";string b="addbccabfeg";find(a);find(b);system("pause");return 0;} ...

...实现在一个字符串中查找指定字符,并输出指定的字符在字符串中...
public static void main(String[]args){ System.out.println("请输入你要判断的字符串:");Scanner s=new Scanner(System.in);String str=s.nextLine();char[]ch=str.toCharArray();Arrays.sort(ch);\/\/对数组排序 char max='a';\/\/记录出现次数最多元素 int maxcount=0;\/\/记录最大出现次数 ...

...一个程序:输入字符串,统计出某指定字符在字符串中出现的次数?_百度...
include "stdio.h"\\x0d\\x0avoid main()\\x0d\\x0a{\\x0d\\x0aint i,a=0,b=0,c=0,d=0,n=0;\/*分别用于统计英文字符、空格、数字、其它字符、所有字符的统计*\/\\x0d\\x0a printf("Please input a string!\\n");\\x0d\\x0a while(getchar()!='\\n')\\x0d\\x0a n++;...

大足县19161398878: C语言程序在字符串中找出ASCⅡ最大字符放在第一位将字符前原字符向后顺序移动 -
闳曹康利: 程序可分以下几步执行:1、遍历字符串,搜索ASCII最大的字符,记录其位置和值 2、从记录位置前一个位置开始到第一个位置,将字符依次后移一个位置 3、将记录的字符放在第一位代码如下: void process(char *str) {int i;int loc = 0;char c = '\0'; for (i = 0; i < strlen(str); i++)if (str[i] > c){c = str[i];loc = i;} for (i = loc - 1; i >= 0; i--)str[i + 1] = str[i]; str[0] = c; }

大足县19161398878: 编写程序,在字符串str中找出asc码值最大字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动 -
闳曹康利: #include<string.h>#include<stdio.h> void topMax2(char *t) { char *p=t,c; int i=0,m=0,count=0; while(*p){ if(*p>t[m]){ m=i; count=1; }else if(*p==t[m]){ m=i;count++; } i++;p++; } if(m>0){ c=t[m]; for(i=m-1;i>=0;i--){ if(t[i]!=c) t[m--]=t[i]; } for(i=0;i<count;i++) t[i]...

大足县19161398878: 在字符串str中找出ASCⅡ码值最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动. -
闳曹康利: q=p+i是使指针向后移动.其实楼主的程序中不用指针也是可以的:fun(char *p) { int i=0,pos=0;//pos记录最大字符 char max = p[0]; for(i=1;p[i];i++) { max=p[i];//保存最大字符 pos=i; //及其位置 } for(i=pos;i>0;i--) p[i]=p[i-1];//将最大字符前的所有字符后移 p[0]=max; }

大足县19161398878: 用C语言编写程序实现功能,输入字符串a,查找字符串中ascii码值最大的字符,并输出
闳曹康利: 遍历加比较 main() { int j; char a[2000],temp; gets(a); temp=a[0]; for(j=1;a[j]!='\0';j++) //扫描一次完成~! if (a[j]&gt;temp) temp=s[j]; printf("%c",temp ); printf("\n"); }

大足县19161398878: 用c语言找出字符串中ascll最大的字符,将之写入指定的地址,文件不包含main函数,求大神指导,急 -
闳曹康利: #include<string.h>#define WADDRESS 0x80000000 int faw(char *str,char *p) { int i char max; max=0; for ( i=0;i<strlen(str);i++ ) if ( max<str[i] ) max=str[i]; (*p)=max; return 0; } 调用:char mstr[]="123455667kjsoisfASDF"; char *pp; pp=(char *)WADDRESS; faw(mstr,pp);

大足县19161398878: c语言:输入一个字符串,从该字符串中找出最小字符并输出 -
闳曹康利: 1 2 3 4 5 6 7 8 9#include<stdio.h> voidmain() { charstr[256],*p,*m;gets(str); p=m=str;while( *p ) {if( *m>*p ) m=p;p++;}printf("最小字符为%c\n",*m); }

大足县19161398878: 编写一个程序实现以下功能,能在字符串sir中找出最大的字符并放在第一个位置上,并将该字符前的原字符 -
闳曹康利: #include<stdio.h> int main() {char sir[100],t;int i,j,max;gets(sir);for(max=i=0;sir[i];i++)if(sir[i]>sir[max])max=i;t=sir[max];for(i=max;i>0;i--)sir[i]=sir[i-1];sir[0]=t;puts(sir); return 0; }

大足县19161398878: 输入一个字符串,如何用c语言编程计算里面有多少字母,多少数字 多少空格和其他字符 -
闳曹康利: 可以通过确定它们的ASCⅡ码值来分辨是是字母,空格,还是数字,A~Z的ASCⅡ值是:65~90 a~z的ASCⅡ值是:97~1220~9的ASCⅡ值是:48~57 那么剩下的就是其他的字符了.

大足县19161398878: 用C语言编程,从一串ASCII码中查找一串ASCII码. -
闳曹康利: 那不就是C库函数中的strstr么 函数原型:char *strstr(char *str1, char *str2); 功能:找出str2字符串在str1字符串中第一次出现的位置 返回值:返回该位置的指针,如找不到,返回空指针. 我们来写一个同strstr等效的函数: char *my_strstr(const ...

大足县19161398878: C语言提取字符的ASC码!
闳曹康利: 直接使用就行了,不需要转换,请写出你的程序.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网