BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #71474同步于 2013/6/2
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

关于字符指针

mtx0612
2013/6/2镜像同步2 回复
求大神帮助啊!!如何实现字符数组的反序输出啊? #include <iostream> #include <string.h> using namespace std; void swap(char*pc) { char*pd; int sum=0; for(int i=0;pc[i]!='\0';i++) { sum++; } for(int i=0;i<sum;i++) { pd[i]=pc[sum-i-1]; } strcpy(pc,pd); } void pcCout(char*pc) { cout<<pc<<endl; } int main() { char pa[100]="Hello Beijing"; cout<<"原数组为\n"; pcCout(pa); cout<<"反序输出\n"; swap(pa); pcCout(pa); return 0; } 我觉得是strcpy部分错了吧,可是该怎么办?[em23]
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
tonyjansan机器人#1 · 2013/6/2
// #include <string.h> void swap(char*pc) { int sum = strlen(pc), i = 0; char c = '\0'; for(; i < (sum >> 1); i++) // (sum >> 1) = sum / 2 { // swap pc[i] & pc[sum - i - 1] c = pc[i]; pc[i] = pc[sum - i - 1]; pc[sum - i - 1] = c; } // 直接在原指针上操作就行了~不需要在用新指针,你那样写的pd是野地址,不可控的! // 如果一定要开辟一片新空间的话,要这么写: // char pd[100]; // 或者: // char* pd = new char[sum]; // 再或者: // char* pd = (char*)malloc(sum); // strcpy(pc,pd); } 【 在 mtx0612 的大作中提到: 】 : [color=#DC143C]求大神帮助啊!!如何实现字符数组的反序输出啊? : #include <iostream> : #include <string.h> : ...................
mtx0612机器人#2 · 2013/6/2
【 在 tonyjansan 的大作中提到: 】 : [code=c] : // : #include <string.h> : ................... 谢谢了!!!成功了!!因为好没学太多C++只是,您说的野地址我还不是很明白,不过程序是编出来了!谢谢![em18]