C++中如何交换字符串数组中的数据??急

C++中如何交换字符串数组中的数据??急,第1张

定义一个结构体,
struct str
{
int a[50];
char b[MAX][LEN];
}
然后根据a对结构体排序就可以
可以用map或者multimap来实现

#include<cstdio>
#include<iostream> 
#include<string> 
using namespace std;
int main() 

char a[100],b[100]; 
int i=0,l; 
gets(a);
l=strlen(a);
while (a[i]!='\0') 

b[l-i-1]=a[i];      
i++; 
}
b[i]='\0';     
puts(b); 
system("pause");
return 0;
}

类型不匹配。

对于字符串,不能直接用=赋值, 而是必须用strcpy。

比如

strcpy(temp,x);
strcpy(x,y);
strcpy(y,temp);

void swap(char s,char c) //用指针传址实现交换
{
int i,j,m;
char t;
for(i=0;s[i]!='\0';i++);// 你没告诉我能不能用strlen 函数 我就纯手编了
for(j=0;c[j]!='\0';i++);// 也可以用 i=strlen(s) ; j=strlen(c);
m=i>ji:j;
for(i=0;i<m;i++) // m为最大值,s[m]==c[m]=='\0',结束符就可以不用换了吧= =||
{
t=s[i];
s[i]=c[i];
c[i]=t;
}
}
// 调用:
char a[100],b[100];
gets(a);
gets(b);
puts(a);
puts(b);
swap(a,b);
puts(a);
puts(b);
最后还有一个问题要注意一下,两个要交换的字符数组长度应该相同,或则说最长的字符串串长要比最短的数组的长度要短才行

首先两个数组的长度要一样交换才有意义,循环遍历数组
int temp; //数组是什么类型temp就定义什么类型
for(int i=0; i<ary1length; i++){
temp = ary1[i];
ary1[i] = ary2[i];
ary2[i] = temp;
}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13395128.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-28
下一篇 2023-07-28

发表评论

登录后才能评论

评论列表(0条)

保存