c语言数组与指针编程源码,C语言编程(练习9:数组与指针)

题目:有 5 个字符串,首先将它们按照字符串中的字符个数由小到大排列,再分别取出每个字符串的第三个字母合并成一个新的字符串输出(若少于三个字符的输出空格)。要求:利用字符串指针和指针数组实现。

代码实现:

/**< 有 5 个字符串,首先将它们按照字符串中的字符个数由小到大排列,再分别取出每个字

符串的第三个字母合并成一个新的字符串输出(若少于三个字符的输出空格)。要求:利

用字符串指针和指针数组实现 */

#include

#include

#include

#define MAX 100

void order(char *a);

void news(char *ps[], int n, char *news);

int main()

{

char *ps[5]={NULL};

char s[5][MAX];

int i = 5;

char newstring[MAX];

//int length;

printf("输入5个字符串:\n");

for(i=0; i<5; i++)

{

gets(s[i]);

ps[i] = s[i];

}

for(i=0; i<5; i++)

{

//length = strlen(ps[i]);

order(ps[i]);

}

printf("输出排序后的字符串:\n");

for(i=0; i<5; i++)

{

puts(ps[i]);

}

news(ps, 5, newstring);

printf("合并成的字符串为:\n");

puts(newstring);

return 0;

}

void order(char *a)

{

char temp;

int i,j;

int length = strlen(a);

for(i=0; i

for(j=0; j

{

if(a[j]>a[j+1])

{

temp = a[j];

a[j] = a[j+1];

a[j+1] = temp;

}

}

}

void news(char *ps[], int n, char *news)

{

int i,j;

char *str;

for(i=0; i

{

str = ps[i];

for(j=0; j<3 && *str != '\0'; j++)

{

str++;

}

if(j==3)

{

*news = *(--str);

news++;

}

else

{

*news = ' ';

news++;

}

}

*news = '\0';

}

运行结果:

0818b9ca8b590ca3270a3433284dd417.png

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值