• C语言:将s所指字符串中下标为偶数同时ASCII值为奇数的字符删去,-将a所指字符串中的字符和b所指字符串中的字符的顺序交叉,-将形参s所指字符串中的所有数字字符顺序前移,


    //函数fun功能:将s所指字符串中下标为偶数同时ASCII值为奇数的字符删去,s所指串中剩余的字符形成的新串放在t所指的数组中。

     1 #include <stdio.h>
     2 #include <string.h>
     3 
     4 void fun(char  *s, char  t[])
     5 {
     6     int i=0,j=0;
     7     while (s[i] != '')
     8     {
     9         if (i % 2 == 0)
    10         {
    11             if ((int)(s[i]) % 2 == 1)//判断ASCII值,使用(int)强制转换类型。
    12             {
    13                 //printf("%d", (int)s[i]);//调试语句
    14                 i++;
    15             }
    16             else
    17             {
    18                 t[j] = s[i];
    19                 //printf("%c", *t);
    20                 i++; j++;
    21             }
    22         }
    23         else
    24         {
    25             t[j] = s[i];
    26             //printf("%c", *t);
    27             i++;  j++;
    28         }
    29     }
    30     t[j] = '';//切记,切记,在赋值一个新数组的时候要记得添加结束符。
    31 }
    32 
    33 void main()
    34 {
    35   char   s[100], t[100];void NONO ();
    36   printf("
    Please enter string S:"); scanf("%s", s);
    37   fun(s, t);
    38   printf("
    The result is: %s
    ", t);
    39   NONO();
    40 }
    41 
    42 void NONO ()
    43 {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
    44   char s[100], t[100] ;
    45   FILE *rf, *wf ;
    46   int i ;
    47 
    48   rf = fopen("in.dat","r") ;
    49   wf = fopen("out.dat","w") ;
    50   for(i = 0 ; i < 10 ; i++) {
    51     fscanf(rf, "%s", s) ;
    52     fun(s, t) ;
    53     fprintf(wf, "%s
    ", t) ;
    54   }
    55   fclose(rf) ;
    56   fclose(wf) ;
    57 }

    //函数fun功能:首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符的顺序交叉,按排序合并到c所指的数组,过长的剩余字符连接在数组的尾部。

     1 #include <stdio.h>
     2 #include <string.h>
     3 
     4 void fun( char  *a, char  *b, char  *c )
     5 {
     6   int   i , j;     char   ch;
     7   i = 0;    j = strlen(b)-1;//指向尾部
     8 /************found************/
     9   while ( i < j )//首尾对应交换顺序。
    10   {   ch = b[i]; b[i] = b[j]; b[j] = ch;
    11       i++;    j--;
    12   }
    13   while ( *a || *b ) {//一个一个进行放置
    14 /************found************/
    15      if ( *a )
    16        { *c = *a;  c++; a++; }
    17      if ( *b )
    18        { *c = *b;  c++; b++; }
    19   }
    20   *c = 0;//结束符
    21 }
    22 
    23 void main()
    24 {
    25   char   s1[100],s2[100],t[200];
    26   printf("
    Enter s1 string : ");scanf("%s",s1);
    27   printf("
    Enter s2 string : ");scanf("%s",s2);
    28   fun( s1, s2, t );
    29   printf("
    The result is : %s
    ", t );
    30 }

    //函数fun功能:将形参s所指字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数的返回值。

     1 #include  <stdio.h>
     2 #include  <string.h>
     3 #include  <stdlib.h>
     4 #include  <ctype.h>
     5 char *fun(char  *s)
     6 { int  i, j, k, n;    char  *p, *t;
     7   n=strlen(s)+1;//求出长度
     8   t=(char*)malloc(n*sizeof(char));//申请内存
     9   p=(char*)malloc(n*sizeof(char));
    10   j=0; k=0;
    11   for(i=0; i<n; i++)
    12   {  if(isdigit(s[i])) {//函数判断是否为数字字符。
    13 /**********found**********/
    14        p[j]=s[i]; j++;}
    15      else
    16      {  t[k]=s[i]; k++; }
    17    }
    18 /**********found**********/
    19    for(i=0; i<k; i++) p[j+i]= t[i];//添加在p数组后面
    20    p[j+k]=0;//结束符
    21 /**********found**********/
    22    return p;
    23 }
    24 void main()
    25 { char  s[80];
    26   printf("Please input: ");  scanf("%s",s);
    27   printf("
    The result is: %s
    ",fun(s));
    28 }

    //第一题标准答案。

    1 {
    2      int i,j=0;
    3      for(i=0;i<strlen(s);i++)
    4      if(!((i%2)==0&&(s[i]%2)))
    5        t[j++]=s[i];
    6      t[j]=0;
    7 }
  • 相关阅读:
    javascript解决方案插件
    vscode前端快速开发插件
    html5新增语义标签
    vscode快捷键大全
    vscode/sublime前端开发快捷键
    vscode自动缩进快捷键
    Android平台OpenGL ES/Assimp/OpenCV/GLM集成说明
    将AOSP源码导入到Android Studio进行查看
    Android OTA升级
    Android构建系统
  • 原文地址:https://www.cnblogs.com/ming-4/p/10455583.html
Copyright © 2020-2023  润新知