31、请编写函数void fun(char xx[]),函数的功能是:将字符串数组xx中下标为奇数的字符按其ASCII值从大到小的顺序进行排序。
例如:源字符串为:abcdefgh,则处理后字符串为:ahcfedgb。
#include <stdio.h> #include <string.h> void fun(char xx[]) { } int main() { char xx[81]; printf("Enter a string : "); gets(xx); printf("The original string is : "); puts(xx); fun(xx); printf("The string after modified : "); puts(xx); return 0; }
void fun(char xx[]) { int i,j,k; char ch; i=strlen(xx); for(j=1;j<i-2;j=j+2) for(k=j+2;k<i;k=k+2) if (xx[j]<xx[k]) { ch=xx[j]; xx[j]=xx[k];xx[k]=ch; } }
32、请编写函数void fun(char xx[]),其功能是:从字符串xx中间一分为二,左边部分按字符的ASCII值降序排序,右边部分按字符的ASCII值升序排序。如果原字符串长度为奇数,则最中间的字符不参加排序,字符仍放在原位置上。
例如:若源字符串为:abcdhgfe,则处理后字符串为:dcbaefgh。 若源字符串为:123498765,则处理后字符串为:432195678。
#include <stdio.h> #include <string.h> void fun(char xx[]) { } int main() { char xx[81]; printf("Enter a string : "); gets(xx); printf("The original string is : "); puts(xx); fun(xx); printf("The string after modified : "); puts(xx); return 0; }
void fun(char xx[]) { int i,j,k,half; char ch; i=strlen(xx); half=i/2; for(j=0;j<half-1;j++) for(k=j+1;k<half;k++) if(xx[j]<xx[k]) { ch=xx[j];xx[j]=xx[k];xx[k]=ch; } if (i%2) half++; for (j=half;j<i-1;j++) for (k=j+1;k<i;k++) if (xx[j]>xx[k]) { ch=xx[j];xx[j]=xx[k];xx[k]=ch; } }
33、请编写函数void fun(char xx[]),其功能是:从字符串xx中间一分为二,左边部分按字符的ASCII值降序排序,排序后左边部分与右边部分进行交换。如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上。
例如:若源字符串为:abcdhgfe,则处理后字符串为:hgfedcba。 若源字符串为:123498765,则处理后字符串为:876594321。
#include <stdio.h> #include <string.h> void fun(char xx[]) { } int main() { char xx[81]; printf("Enter a string : "); gets(xx); printf("The original string is : "); puts(xx); fun(xx); printf("The string after modified : "); puts(xx); return 0; }
void fun(char xx[]) { int i,j,k,half; char ch; i=strlen(xx); half=i/2; for(j=0;j<half-1;j++) for(k=j+1;k<half;k++) if(xx[j]<xx[k]) { ch=xx[j];xx[j]=xx[k];xx[k]=ch; } for (j=half-1,k=i-1;j>=0;j--,k--) { ch=xx[j]; xx[j]=xx[k]; xx[k]=ch; } }
34、编写一个函数fun(char *str,char *substr),该函数统计一个长度为2的子字符串在另一个字符串中出现的次数。
例如,若字符串str为"asd asasdfg asd as zx67 asd mklo",子字符串为"as",则函数返回值是6。
#include <stdio.h> #include <string.h> int fun(char *str,char *substr) { } int main() { char str[81], substr[3] ; int n ; printf("输入原字符串:") ; gets(str) ; printf("输入子字符串:") ; gets(substr) ; n=fun(str, substr) ; printf("n=%dn", n) ; return 0; }
int fun(char *str,char *substr) { int n=0; char *p , *r; while (*str) { p=str; r=substr; while(*r) if (*r==*p) {r++; p++; } else break; if (*r=='