想用指针方法解决比较字符串大小问题,但是显示: 写入访问权限冲突。求解

weixin_45669978 2019-11-09 08:34:18
#include<iostream>
#include<string>
using namespace std;
int main()
{
char* a[4] ;
int i, min,n,t;
for (i = 0; i < 4; i++) //输入字符串
{
cin >> *a[i];
}
for (i=0;i<3;i++) //比较排序
{
min = i;
for (n = 0; n < 3; n++)
{
t=strcmp(a[i], a[n + 1]);
if (t==1)
min = n + 1;
swap(*a[i], *a[n + 1]);
}
}
for (i = 0; i < 4; i++)
{
cout << *(a + i);
}
}
...全文
78 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_45669978 2019-11-09
  • 打赏
  • 举报
回复
emm~~这样的话就没指针了呀
Italink 2019-11-09
  • 打赏
  • 举报
回复
指针不是字符串,字符串必须分配空间 另外 a[i]是字符串,*a[i]是字符串的第一个元素,等价于a[i][0],你这样输入也是错误的

#include<iostream>
#include<string>
using namespace std;
int main()
{
	char a[4][1000];		//定义4个字符串,每个字符串最大长度为1000
	int i, min, n, t;
	for (i = 0; i < 4; i++)      //输入字符串
	{
		cin >> a[i];
	}
	for (i = 0; i < 3; i++)          //比较排序
	{
		min = i;
		for (n = 0; n < 3; n++)
		{
			t = strcmp(a[i], a[n + 1]);
			if (t == 1)
				min = n + 1;
			swap(a[i], a[n + 1]);
		}
	}
	for (i = 0; i < 4; i++)
	{
		cout << a[i];
	}
}

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧