字符数组练习

2016-04-06  本文已影响65人  Micason

1.将放在字符串数组中的M(M<=5)个字符串(每串的长度不超过N(N<=10)),按顺序合并组成一个新的字符串。例如,若字符串数组中的M个字符串为{"AAAA","BBBBBBB","CC"}则合并后的字符串内容应该是"AAAABBBBBBBCC"



#include"stdio.h"
int main()
{
    char a[5][10];
    char b[100];
    int i,M,j,k=0;
scanf("%d",&M);
for(i=0;i<M;i++)
scanf("%s",&a[i]);
for(i=0;i<M;i++)
for(j=0;a[i][j]!='\0';j++)
b[k++]=a[i][j];
b[k]='\0';
puts(b);
}```
2.在形参ss所指字符串数组中,将所有串长超过k(K<=N)。的字符串中后面的字符删除,只保留前面的k个字符。ss所指字符串数组中共有M(M<=5)个字符串,且串长小于N(N<=10)。
```cpp
#include"stdio.h"
int main()
{
    char a[5][10];
    char b[100];
    int i,M,j,k=0,N;
scanf("%d",&M);
scanf("%d",&N);
for(i=0;i<M;i++)
scanf("%s",&a[i]);
for(i=0;i<M;i++)
a[i][N]='\0';
for(i=0;i<M;i++)
puts(a[i]);
}```

3.对形参ss所指字符串数组中的M(M<=5)个字符串按长度由短到长进行排序。ss所指字符串数组中共有M个字符串,且串长小于N。(N<=10)
```cpp
    #include<stdio.h>
#include<string.h>
int main()
{
 char a[5][10];
 char b[100];
 int i,k,j,M;
 scanf("%d",&M);
   for(i=0;i<M;i++)
    scanf("%s",&a[i]);
   for(i=0;i<M-1;i++)
    for(j=0;j<M-i-1;j++)
        if(strlen(a[j])>strlen(a[j+1]))//冒泡排序
   {
       strcpy(b,a[j]);
       strcpy(a[j],a[j+1]);
       strcpy(a[j+1],b);
   }
     for(i=0;i<M;i++)
        puts(a[i]);


}

4.#include"stdio.h"

include"string.h"

int main()
{
char ss[100];
int i;
gets(ss);
if(ss[0]>='a'&&ss[0]<='z')
ss[0]=ss[0]-32;
for(i=0;ss[i]!='\0';i++)
if(ss[i]==' '&&ss[i+1]!=' ')
{if(ss[i+1]>='a'&&ss[i+1]<='z')
ss[i+1]=ss[i+1]-32;
}

    puts(ss);

}#include"stdio.h"

include"string.h"

int main()
{
char ss[100];
int i;
gets(ss);
if(ss[0]>='a'&&ss[0]<='z')
ss[0]=ss[0]-32;
for(i=0;ss[i]!='\0';i++)
if(ss[i]==' '&&ss[i+1]!=' ')
{if(ss[i+1]>='a'&&ss[i+1]<='z')
ss[i+1]=ss[i+1]-32;
}

    puts(ss);

}

上一篇下一篇

猜你喜欢

热点阅读