字符数组倒序有关问题:写入位置冲突,如何解决啊
字符数组倒序问题:写入位置冲突,怎么解决啊?
大家帮我看看,我这个运行怎么报错:写入位置冲突啊
如何把char *buff[]={"A","B","C","D","E","F","G"};转换为char *buff[]={"G","F","E","D","C","B","A"};
我的做法是下面的,报写入错误?大家帮我解决下,怎么回事啊,谢谢了
#include "stdafx.h"
void swap(char *buff[],int count){
char **p,**q;
int i=0;
p=buff;
q=p+count-1;
for(i=0;i<count;i++,p++,q--){
char temp;
temp = **p;
**p = **q;
**q = temp;
}
}
int main(int argc, char* argv[])
{
char *buff[]={"A","B","C","D","E","F","G"};
swap(buff,7);
return 0;
}
------解决方案--------------------
你的都不是字符数组了,都成字符串组了。。。
char buff[8]={'A','B','C','D','E','F','G'};//这样定义
char buff[8]="ABCDEFG";//或者这样定义
------解决方案--------------------
大家帮我看看,我这个运行怎么报错:写入位置冲突啊
如何把char *buff[]={"A","B","C","D","E","F","G"};转换为char *buff[]={"G","F","E","D","C","B","A"};
我的做法是下面的,报写入错误?大家帮我解决下,怎么回事啊,谢谢了
#include "stdafx.h"
void swap(char *buff[],int count){
char **p,**q;
int i=0;
p=buff;
q=p+count-1;
for(i=0;i<count;i++,p++,q--){
char temp;
temp = **p;
**p = **q;
**q = temp;
}
}
int main(int argc, char* argv[])
{
char *buff[]={"A","B","C","D","E","F","G"};
swap(buff,7);
return 0;
}
------解决方案--------------------
你的都不是字符数组了,都成字符串组了。。。
char buff[8]={'A','B','C','D','E','F','G'};//这样定义
char buff[8]="ABCDEFG";//或者这样定义
------解决方案--------------------
- C/C++ code
void swap(char buff[],int count) { int i=0,j; j=count-1; for(i=0;i<count/2;i++,j--){ char temp; temp = *(buff+i); *(buff+i) = *(buff+j); *(buff+j) = temp; } }
------解决方案--------------------
- C/C++ code
char *buff[7]={0}; for(int i=0;i!=7;i++) { buff[i]=new char[10](); char c='a'; c='a'+i; memcpy(buff[i],&c,1); } swap(buff,7);