麻烦帮忙看下这个倒置程序
- C/C++ code
#include <stdio.h>#include<string.h>void ConverseStrt( char *Str,int start ,int end) {/* 将字符串倒置,Str为字符串,strat和end为字符数 组的首尾下标*/ char temp; if (end-start<1) return; /*Str的串长<=1*/ else { temp=Str[start]; Str[start] = Str[end]; Str[end]=temp; //Str[start] <-> Str[end] /*交换字符*/ ConverseStrt (Str , start+1 , end-1); }/*Str的串长>1,字符串的首尾元素调换,再将去掉 首尾元素的字符串调换*/ }void main (){ int i; char *p; p="abcmn12343444444445"; ConverseStrt(p,1,15); for(i=1;i<=15;i++) printf("%d",p[i]);}这个编译可以 运行出错 指针学的不好求教
[解决办法]
常量字符串不能修改, 改成
char p[] = "abcmn12343444444445";
另, 字符串输出是 %c, 不是 %d