在字符串str中找出ASCⅡ码值最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。

作者&投稿:象闵 (若有异议请与网页底部的电邮联系)
在字符串str中找出ASCII码最大的字符,将其放在第一个位置上并将该字符向后顺序移动。为什么是q=q+i;~

{
*q=*(q-1);
q--;
}
表示将max之前的串逐个后移一位
在q=p+1时,将p[0]移到了p[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);}

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;
}

p是数组p[ ]的首地址,第i个最大,p+i就是最大的那个的地址

q指向最大字符在在字符串中位置

指针变化,就是地址变化

字符


C语言统计substr所指的子符串在str所指的字符串中出现的次数_百度知 ...
代码在str中不断的扫描substr,当找到第一个相同字符时,则循环比较str与substr剩余的字符串,如果substr中的所有字符都在str中出现(通过substr[k+1] == '\\0'判断substr是否已判断到最后一个字符),则判断为找到一次substr的完全匹配,把发现次数加1(num++).然后回到第一层循环,直到扫描完str的每个...

C语言中,strstr函数的功能是什么?不用库函数,自己写怎么写?
C语言中,strstr函数的功能是寻找字符串中子串出现的位置,自己写的步骤如下。需要准备的材料分别有:电脑、C语言编译器。1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。2、在test.cpp文件中,输入C语言代码:。int fun(char *a, char *b){ int i, j, alen = strlen(a)...

给定程序的功能是:判断字符ch是否与串str中的某个字符相同,若相同什 ...
\/*这里有两种情况,如果出现用户输入字符与字符串中某字符相同,跳出whlie循环(即出现了*str==ch即whle循环的第二个判断条件退出),那么,因为此时*str和ch是相同的,所以进入不了if,直接回到主函数main(),在屏幕上输出原来的字符串。另外一种情况是,*str != NULL,即在字符串str中没有找到与...

java 找出两个字符串中共有的字符
String str1="asdfghjkasdzxc";\/\/随便起的 String str2="zxcvgfdsahjkio";HashSet h=new HashSet();char[] ch1=str1.toCharArray();char[] ch2=str2.toCharArray();System.out.println("两个字符串相同字符如下:");for(int i=0;i<ch1.length;i++){ for(int j=0;j<ch2.length;j++...

C语言中怎样获得字符串中的单个字符
char str[]="hello" ;int i;for( i=0;str[i];i++ ) printf("%c\\n", str[i] ); \/\/以数组方式引用一个字符:str[i] for( i=0;*(str+i);i++ ) printf("%c\\n", *(str+i) ); \/\/以指针方式引用一个字符:*(str+i)存储在string中(仅支持C++)string str="abcde...

str1.count(str2,10)中的10什么意思?
在字符串(str1)中搜索另一个字符串(str2)时,str1.count(str2,10)中的数字10表示从字符串str1的第10个位置开始搜索。如果该参数被省略,则从字符串str1的第一个字符位置开始搜索。因此,该参数可以指定搜索的起始位置,以便更精确地查找子字符串。例如,假设str1是字符串"hello world, hello"...

java中怎么判断一个字符串中包含某个字符或字符串
API中String的常用方法 \/ \/\/ 查找指定字符串是否存在 public static void main(String[] args) { String str1 = "abcdefghijklmnabc";\/\/ 从头开始查找是否存在指定的字符 System.out.println(str1.indexOf("c"));\/\/ 从第四个字符位置开始往后继续查找 System.out.println(str1.indexOf("c", ...

从键盘输入一个长度不超过50的字符串,从中找出字母和数字,并输出两_百 ...
include <iostream>#include "stdio.h"#include "string.h"using namespace std;void FindCharAndNumber(){char str[100];cout << "请输入一个字符串,不超过50个字符" << endl;\/\/scanf("%s", str);cin >> str;char char_str[50], num_str[50];int char_idx=0, num_idx=0;for (...

C语言如何查找名字?
字符串函数,头文件包括#include <cstring> 用其中的一个比较函数if(strcmp(name1,name2)== 0),所有的名字都存在一个二维字符数组里,把这句话加在循环体内每个名字遍历一次即可找到。希望能帮到你。

如何实现(c语言)在文件中按条件查找自己想要的信息并输出..
大概思路就是调用fopen函数打开文件。读取文件信息存在char[]数组里,然后调用char *strstr(char *str1, char *str2),功能是找出str2字符串在str1字符串中第一次出现的位置。 可以这样写:char *p=strstr(a,b);if(NULL != p){ \/\/a中不存在b,添加相应代码}else{ \/\/a中存在b,添加相...

三亚市19139751164: 在字符串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; }

三亚市19139751164: 编写程序,在字符串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]...

三亚市19139751164: 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; }

三亚市19139751164: 编写函数,求出字符串中ASCII码最大的字符.字符串在主函数中读入(使用函数) -
郝底地衣: #include char str[1000]; void getmax() { int i ; char max=str[0]; //最大值初始为str[0] for(i=1;str[i]!='\0';i++) //开始找最大值. if(max max=str[i]; printf("%c\n",max); } int main() { gets(str); //输入字符串. getmax(); //函数. return 0; }

三亚市19139751164: 输入一个字符串,输出其中asc码值最大的符号 -
郝底地衣: #includeint main() { char s[200],*p,*q; gets(s); for(p=q=s;*p;p++) if(*p>*q)q=p; printf("最大的字符是%c\n",*q); return 0; }

三亚市19139751164: 用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]>temp) temp=s[j]; printf("%c",temp ); printf("\n"); }

三亚市19139751164: 汇编语言 编写一个程序,从一个字符串查找ASCII码最大的字符,并将其显示出来 -
郝底地衣: code segmentassume cs:codeorg 100h start:jmp bbb str1 db 250 dup(' ') num db ? char db ' ','$' msg1 db 10,13,'please input string:','$' lfcr db 10,13,'$'bbb:push cspop dslea dx,msg1mov ah,9int 21h MOV cx,0lea di,str1 again1:mov ah,...

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

三亚市19139751164: 用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);

三亚市19139751164: 从字符串str中取出ASCII码值为偶且下标为偶数的字符依次存放到字符串t中.例如:若str所指的字符串为:4AZ -
郝底地衣: #include#include void main() { char s[100],t[100]; int i,j=0; gets(s); for(i=0;s[i]!='\0';i++) if(i%2==0&&s[i]%2==0) {t[j]=s[i];j++;} t[j]='\0'; puts(t); }

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