输入3个字符串,按字符串由短到长的顺序输出

该博客介绍如何使用C++编程,通过指针操作,按照字符串长度从短到长的顺序输出三个输入的字符串。代码中包含了输入字符串、定义指针、比较字符串长度以及交换字符串顺序的函数实现。

输入3个字符串,按字符串由短到长的顺序输出,要求使用指针。


#include "stdafx.h"
#include<iostream>
#include<string.h>
#include<stdio.h>
using namespace std;


char a[80],b[80],c[80];
char *p1,*p2,*p3;

//输入三个字符串,三个字符型指针分别三个字符串
int _tmain(int argc, _TCHAR* argv[])
{
void bijiao();       //因为bijiao在main函数后面定义的,所以这里要先声明一下
cin>>a;
cin>>b;
cin>>c;
p1=a;
p2=b;
p3=c;


bijiao();


return 0;
}

//函数change将两个字符数组里存放的字符串交换
void change(char *a,char *b)
{

### C语言实现三个字符串典序排序 在C语言中,可以使用`strcmp`函数来比较两个字符串的大小,并通过交换操作将字符串按照从小到大的顺序排列。以下是一个完整的代码示例[^2]: ```c #include <stdio.h> #include <string.h> int main() { char s1[50], s2[50], s3[50]; // 定义三个字符串数组 char temp[50]; // 用于临时存储字符串 printf("请输入三个字符串:\n"); fgets(s1, sizeof(s1), stdin); // 输入字符串s1 fgets(s2, sizeof(s2), stdin); // 输入字符串s2 fgets(s3, sizeof(s3), stdin); // 输入字符串s3 // 去除输入字符串中的换行符 s1[strcspn(s1, "\n")] = 0; s2[strcspn(s2, "\n")] = 0; s3[strcspn(s3, "\n")] = 0; // 比较并交换s1和s2 if (strcmp(s1, s2) > 0) { strcpy(temp, s1); strcpy(s1, s2); strcpy(s2, temp); } // 比较并交换s1和s3 if (strcmp(s1, s3) > 0) { strcpy(temp, s1); strcpy(s1, s3); strcpy(s3, temp); } // 比较并交换s2和s3 if (strcmp(s2, s3) > 0) { strcpy(temp, s2); strcpy(s2, s3); strcpy(s3, temp); } // 输出排序后的结果 printf("按典序排序后的结果为:\n%s\n%s\n%s\n", s1, s2, s3); return 0; } ``` 此程序通过`strcmp`函数逐一比较字符串的大小,并利用`strcpy`函数进行字符串交换,从而实现按典序从小到大排序的功能。 --- ### 相关知识点补充 - `strcmp`函数返回值小于0表示第一个字符串小于第二个字符串,等于0表示两者相等,大于0表示第一个字符串大于第二个字符串[^1]。 - 使用`fgets`代替`gets`可以避免缓冲区溢出问题,同时需要手动去除输入字符串中的换行符[^2]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值