已知字符串S1中存放一段英文,写出算法format(s1,s2,s3,n),将其按给定的长度n格式化成两端对齐的字符串S2, 其多余的字符送S3。

题目
已知字符串S1中存放一段英文,写出算法format(s1,s2,s3,n),将其按给定的长度n格式化成两端对齐的字符串S2, 其多余的字符送S3。


相似考题

1.●试题四阅读下列程序说明和C程序,将应填入(n)处的字句写在答卷纸的对应栏内。【程序说明】该程序定义了两个子函数strsort和strmerge。它们分别实现了将一个字符串按字母顺序排序和将两个字符串合并排序,并删去相同字符。在主函数里,先输入两个字符串s1和s2,然后调用strsort函数对它们分别排序,然后调用strmerge函数将s1和s2合并,将合并后的字符串赋给字符串s3,最后输出字符串s3。【程序】#include<stdio.h>void strmerge(char*a,char*b,char*c)//将字符串a,b合并到字符串c中{char t,*w;w=c;while( (1) ){//找到字符串a,b当前字符中较小的字符if(*a<*b){t=*a;(2) ;}else if(*a>*b){t=*b;(3) ;}else//字符串a,b当前字符相等{t=*a;a++;b++;}if( (4) )//开始,可直接赋值*w=t;else if(t!=*w)//如果a,b中较小的当前字符与c中当前字符不相等,才赋值 (5) ;}if(*a!=\′\0′)//如果字符串a还没有结束,则将a的剩余部分赋给cwhile(*a!=′\0′)if(*a!=*w){*(++w)=*a;a++;}else(6) ;if(*6!=′\0′)//如果字符串b还没有结束,则将b的剩余部分赋给cwhile(*b!=′\0′)if(*b!=*w){*(++w)=*b;b++;}elseb++;(7) ;}void strsort(char*s)//将字符串S中的字符排序{int i,j,n;char t,*w;W=S;for(n=0;*w!=′\0′;n++)//得到字符串长度nw++;for(i=0;i<n-1;i++)//对字符串s进行排序,按字母先后顺序for(j=i+1;j<n;j++)if( (8) ){t=s[i];s[i]=s[j]; (9) ;}}void main(){char s1[100],s2[100],s3[100];printf("\nPlease,input the first string:");scanf("%s",s1);printf("\nPlease input the second string:");scanf("%s",s2);strsort(s1);//将字符串s1排序strsort(s2);//将字符串s2排序printf("%s\n",s1);printf("%s\n",s2);s3[0]=′\0′;//字符串s3的第一个字符先置′\0′结束标志(10) //将s1和s2合并,按照字母顺序排列,//且要删去相同字符,存入s3中printf("%s",s3);}

更多“已知字符串S1中存放一段英文,写出算法format(s1,s2,s3,n),将其按给定的长度n格式化成两端对齐的字符串S2, 其多余的字符送S3。 ”相关问题
  • 第1题:

    判断字符串s1是否大于字符串s2,应该使用( )。A.if(strcmp(s1,s2)<0)B.if(s1>s2)C.if(strcmp(s2,s1

    判断字符串s1是否大于字符串s2,应该使用( )。

    A.if(strcmp(s1,s2)<0)

    B.if(s1>s2)

    C.if(strcmp(s2,s1)<0)

    D.if(strcmp(s1,s2))


    正确答案:C
    解析:本题考查字符串比较函数strcmp()。调用形式:strcmp(s1,s2),其中s1、s2分别是字符串存储区的首地址。函数功能:比较字符串str1和str2,当str1str2时,返回值为负数;当str1=str2时,返回0;当str1>str2,返回值为正数(注意:不能使用关系运算符比较两个字符串的大小)。

  • 第2题:

    main()

    { char *s2=“I love China!”,**s1=&s2;

    char *s3,c,*s4=“w”;

    s3=&c;

    *s3=‘H’;

    s2=s2+2;

    printf(“%s\t%c\t%s\t%c\n”,s2,*s3,s4,**s1);

    }


    正确答案:
    6.love China! H w l

     high byte:12

     low byte:34

     word value:1274

     the result:3ca8

  • 第3题:

    两个字符串可以比较大小,若字符串S1的长度大于字符串S2,则S1大于S2。


  • 第4题:

    读下列程序说明和C程序,将应填入(n)处。

    【程序说明】

    该程序定义了两个子函数strsort和strmerge。它们分别实现了将一个字符串按字母顺序排序和将两个字符串合并排序,并删去相同字符。在主函数里,先输入两个字符串s1和s2,然后调用strsort函数对它们分别排序,然后调用strmerge函数将s1和s2合并,将合并后的字符串赋给字符串s3,最后输出字符串s3。

    【程序】

    include<stdio.h>

    void strmerge(char,a,char *b,char *c) //将字符串a,b合并到字符串c中

    {

    char t,*w;

    w=c;

    while((1))

    {//找到字符串a,b当前字符中较小的字符

    if(*a< *b)

    {

    t= *a;

    (2);

    {

    else if (*a>*b)

    {

    t= *b;

    (3);

    }

    else //字符串a,b当前字符相等

    {

    t= *a;

    a++;

    b++;

    }

    if((4)) //开始,可直接赋值

    *w=t;

    else if(t!=*w)

    //如果a,b中较小的当前字符与c中当前字符不相等,才赋值(5);

    }

    if(*a!=\'\0') //如果字符串a还没有结束,则将a的剩余部分赋给C

    while(*a!='\0')

    if(*a!=*w)

    {

    *(++w)=*a;

    a++;

    }

    else

    (6);

    if(*6!='\0') //如果字符串b还没有结束,则将b的剩余部分赋给c

    while(*b!='\0')

    if(*b! = *w)

    {

    *(++w)=*b;

    b++;

    }

    else

    b++;

    (7);

    }

    void strsort(char*s) //将字符串S中的字符排序

    {

    int i,j,n;

    char t,*w;

    W=S;

    for(n=0;*w!='\0';n++) //得到字符串长度n

    w++;

    for(i=0;i<n-1;i++) //对字符串s进行排序,按字母先后顺序

    for(j=i+1;j<n;j++)

    if((8))

    {

    t=s[i];

    s[i]=s[j];

    (9);

    }

    }

    void main()

    {

    char s1[100],s2[100],s3[100];

    printf("\nPlease,input the first string:");

    scanf("%s",s1);

    printf("\nPlease input the second string:");

    scanf("%s",s2);

    strsort(s1); //将字符串s1排序

    strsort(s2); //将字符串s2排序

    printf("%s\n",s1);

    printf("%s\n",s2);

    s3[0]='\0'; //字符串s3的第一个字符先置'\0'结束标志

    (10) //将s1和s2合并,按照字母顺序排列,

    //且要删去相同字符,存入s3中

    printf("%s",s3);

    }


    正确答案:(1)(*a!='\0')&&(*b! ='\0')(2)a++ (3)b ++(4)*w=='\0'(5)*(++w)=t(6)a++ (7)*(++w)='\0'(8)s[i]>s[j](9)s[j]=t (10)strmerge(s1s2s3)
    (1)(*a!='\0')&&(*b! ='\0')(2)a++ (3)b ++(4)*w=='\0'(5)*(++w)=t(6)a++ (7)*(++w)='\0'(8)s[i]>s[j](9)s[j]=t (10)strmerge(s1,s2,s3) 解析:根据题意,对字符串的处理分为三步:第一步是从键盘上输入两个字符串;第二步是将两个字符串分别排序;第三步是将字符串合并;第四步是显示处理结果。
    第一步和第四步容易实现,关键是第二步和第三步的处理,下面分别加以说明。
    字符串排序是指将一个字符串中各个字符按照ASCII码值的大小排序。例如,字符串“Beijing”由小到大的排序结果应该是:“Bejiign”;排序算法很多,第二个例子,我们就要介绍快速排序算法。在这里使用简单的冒泡排序算法:即将字符串中的每一个字符一个个进行比较,找出最小的字符,然后再在剩下的字符中找最小的字符。例如,字符“Beijing”的排序过程如下:
    第一次将字符“Beijing”中的每一个字符:'B'、'e'、'i'、'j'、'i'、'n'、'g'进行比较,找到最小的字符'B'。
    第二次在剩下的字符'e'、'i'、'j'、'i'、'n'、'g'中,找到最小的字符'e'。
    第三次在剩下的字符'j'、'i'、'n'、's'中,找到最小的字符'j'。
    第三步是合并字符串,合并后的字符串仍然由小到大排序。由于待合并的两个字符串已经排好序。假定两个排好序的字符串分别为A和B,合并后的字符串为C,要使待合并后的字符串仍然由小到大排序,可采取下述步骤:
    1.从前往后取A中的字符,并按从前往后的顺序与B中的字符比较,若A中的字符较小,则将该字符存入C,并移到A的下一个字符,继续与B中的字符比较。
    2.若A中的字符较大,则将B中的字符存入C,并移到B的下一个字符,继续与A中的字符比较。
    3.若A与B中的字符相等,则将A或B中的字符存入C,并将A和B均移到下一个字符。
    4.若A或B字符串到达末尾,则将B或A的剩余部分加到字符串 C中。
    需要注意的是:A、B和C三个字符串均可以用字符数组来表示,C数组的长度不能小于A、B两数组的长度之和。另外,判别字符串是否结尾的方法是:从A或B中取出的字符是否为'\0',所有字符串都是以'\0'结尾的。

  • 第5题:

    判断字符串s1的长度是否大于字符串s2的长度,应使用()。

    A.if(s1>s2)

    B.if(strcmp(s1,s2))

    C.if(strlen(s1)>strlen(s2))

    D.if(strcat(s1)>strcat(s2))


    if(strlen(s1)>strlen(s2))