用C语言写了一个使字符数组反转输出的代码 可是结果输出却是空白 请IT大拿进来看下

c\u8bed\u8a00\u4e2d,\u5199\u4e00\u4e2a\u51fd\u6570,\u628a\u6570\u7ec4\u4e2d\u7684\u5143\u7d20\u53cd\u8f6c\u8f93\u51fa

\u53cd\u8f6c\u8f93\u51fa\u662f\u6bd4\u5982a[5]={0,1,2,3,4}\u8f93\u51fa\u662fa[5]={4,3,2,1,0}\u5417\uff1f\u5982\u679c\u662f\u6211\u7406\u89e3\u7684\u8fd9\u6837\uff0c\u90a3\u770b\u4e0b\u9762\u5427
#include int main(){int a[6]={0,1,2,3,4,5};int i,n,temp;n=6;//\u6570\u7ec4\u5143\u7d20\u4e2a\u6570for(i=0;i<n/2;i++){temp=a[i];a[i]=a[n-1-i];a[n-1-i]=temp;}for(i=0;i<n;i++) printf("%d ",a[i]);return 0;}

\u4e2d\u6587\u9700\u8981\u5355\u72ec\u5904\u7406\u7684\uff0c\u4e00\u4e2a\u4e2d\u6587\u5360\u4e24\u4e2a\u5b57\u8282\uff0c\u53cd\u8f6c\u65f6\u987a\u5e8f\u4e0d\u53d8\u3002
#include
#include
#include
void reverse(char* s)
{
int len = strlen(s);
char* pNewStr = (char*)malloc(len + 1) ;
char* pNewMove = pNewStr;
char* pStr = s + len - 1;
while(pStr >= s)
{
unsigned char ch = *pStr;
if(ch > 127) //\u4e2d\u6587\u5224\u65ad \u4e0d\u592a\u786e\u5b9a\uff0c\u8fd9\u4e2a\u6761\u4ef6\u662f\u5426\u4e25\u8c28\uff0c\u5728\u672c\u673a\u6d4b\u8bd5\u6ca1\u95ee\u9898
{
*pNewMove = *(pStr - 1);
pNewMove ++;
*pNewMove= *pStr;
pNewMove ++;

pStr -= 2;
}else
{
*pNewMove =*pStr;
pNewMove ++;
pStr--;
}
}
pNewStr[len] = '\0';
strcpy(s,pNewStr);
free(pNewStr);
}
int main()
{
char str[201];
printf("\u8f93\u5165\u8981\u53cd\u8f6c\u7684\u5b57\u7b26\u4e32\n");
scanf("%s",str);
reverse(str);
printf("\u53cd\u8f6c\u540e\u5b57\u7b26\u53d8\u4e3a:\n %s \n",str);
system("pause");
return 0;
}

输入的时候,不用&了,因为cCar这个,本身就代表一个地址

然后一个数组的话,当数组长度为n时,数组的元素序号就是从0——n-1

在前面的for里面,中间一项,只能是小于,不能是小于等于,不然程序有问题

下面是我帮你改好的代码



肯定不行啦,输入里面不支持
,如果在输入里加了
的话,你就必须在输入完成后,输入'\'、'n'这两个字符,再回车,才行

#include<stdio.h>
#include<string.h>

int main()
{
char cCar[10];
int a,j;
char i;
printf("请输入字符:");

scanf("%s",cCar);

a=strlen(cCar);

for(j=0;j<a/2;j++)
{
i=cCar[j];
cCar[j]=cCar[a-j-1];
cCar[a-j-1]=i;

}
printf("处理后的字符是:%s
", cCar);

return 0;
}


改成
cCar[j]=cCar[a-j-1];
cCar[a-j-1]=i;

cCar 假如是 “123456” 6位的话,a=6

当j=0时
cCar[j]=cCar[a-j]; // cCar[0]=cCar[6]; cCar[6]是 ‘/0’结束符,换到第一位的话,当然是空字符串了

另外输入里一般不加其他内容的,你这明显输入输出搞混了

  • 涓涓狢璇█瀛楃涓插弽杞绋嬪簭鐨勯敊璇,姹傝В绛
    绛旓細甯搁噺瀛楃涓鍐呭鏄笉鍙洿鏀圭殑锛屼笉瑕佺敤鎸囬拡锛歷oid reverse_str(char *str){ char *last_char; char temp; last_char=str; /*鎸囧悜鏈鍚涓涓瓧绗*/ while(*last_char!='\0') last_char++; last_char--; while(str<last_char) { temp=*str; *str++=*last...
  • ...缂栧啓涓涓绋嬪簭鎶婁竴涓崟璇嶈鍏涓涓瓧绗︽暟缁,鐒跺悗鍙嶅搷鎵撳嵃鍑鸿繖涓瘝...
    绛旓細涓婇潰鐨勪汉缁欏嚭寰椾唬鐮佹湁闂锛屼竴鏄ご鏂囦欢锛屼簩鏄鏁扮粍闀垮害锛屼笁鏄緭鍑哄簲璇ユ槸%c锛屼篃灏辨槸杈撳嚭搴旇鏄瀛楃锛屾垜绠鍗曟敼浜嗕笅锛歩nclude<stdio.h> include<string.h> void main(){ int i,j;char s[20];printf("杈撳叆涓涓鍗曡瘝\n");scanf("%s",&s);i=strlen(s);s[i]='\0';for(j=i-1;0<=j;j...
  • C璇█ 鍐欎竴涓鍑芥暟浣胯緭鍏ョ殑涓涓瓧绗︿覆鎸夊弽搴忓瓨鏀 鍦ㄧ嚎绛夌瓟妗!
    绛旓細strlen瀹為檯涓婃槸锛屼粠鍙傛暟琛ㄧず鐨勫湴鍧寰鍚庢壘锛屾壘鍒扮涓涓'\0'锛屽嵆涓插熬銆傜劧鍚庤绠'\0'鑷抽鍦板潃鐨勨滆窛绂烩濓紝鍗抽殧浜嗗嚑涓瀛楃锛屼粠鑰屽緱鍑洪暱搴︺傚浜庨偅鍙ヤ唬鐮侊紝鏄妸鏈鍚庝竴涓噺璧嬬粰鍙涓涓暟缁鐨勭涓椤癸紝鐩村埌n-1鍒0鏃讹紝涔熷氨鏄妸绗竴涓暟缁勭殑鍏冪礌浠庢渶鍚庡紑濮嬭祴鍊肩粰鍙︿竴涓暟缁勭殑绗竴涓厓绱狅紝鐩村埌绗簩涓暟缁...
  • c璇█,瀹氫箟涓涓涓缁鏁扮粍,鐒跺悗渚濇瀛樻斁'a'鈥斺'z'26涓嫳鏂囧瓧姣,鏈鍚庡弽鍚...
    绛旓細main(){ char a[26],i;for(i=0;i<=26;i++)a[i]=i+97;for(i=0;i<26;i++)printf("%c ",a[i]);}
  • ...棰樼洰灏辨槸鍐欎竴涓嚱鏁,灏涓涓瓧绗︽暟缁鍊掑簭杈撳嚭)
    绛旓細鍦╥nt i,j;鍚庡姞涓鍙or(n=0;a[n]!='\0';n++);銆傛妸for(i=n,...鏀规垚for(i=n-1,...銆傚湪for(i=0;b[i]!='\0';i++)鍓嶅姞涓鍙[j]='\0';銆
  • C璇█ 缂栧啓涓涓鍑芥暟,浣胯緭鍏ョ殑涓涓瓧绗︿覆鎸夊弽搴忓瓨鏀,鍦ㄤ富鍑芥暟涓緭鍏ュ拰...
    绛旓細杩欎釜鍜岃繑鍥炲兼病鏈夊叧绯荤殑鍛锛岃繑鍥炲煎拰鍙傛暟鏄袱涓蹇电殑銆傚弬鏁版槸璋冪敤鑰呬紶閫掔粰琚皟鐢ㄨ呯殑涓浜涗俊鎭紝鍙互鏄涓涓鎴栬呭涓紝涔熷彲浠ユ病鏈夈傝岃繑鍥炲兼槸琚皟鐢ㄨ呯粰璋冪敤鑰呯殑淇℃伅锛屽彲浠ユ槸涓涓紝鎴栬呮病鏈夛紝涓嶈兘鏄涓倂oid daoxu(char x[],int n)锛岃繖鏍峰瓙鐨勫啓娉曪紝main鍑芥暟浼犻掔粰daoxu鍑芥暟鐨勬槸鏁扮粍a鍜宎鐨勯暱搴...
  • 鐢–璇█濡備綍瀹炵幇閿洏杈撳叆涓涓瓧绗︿覆,瀛樻斁鍒鏁扮粍,鐒跺悗閫嗗簭瀛樻斁鍒板師浣嶇疆骞...
    绛旓細int main(){ char str[100];printf("杈撳叆涓涓瓧绗︿覆:");scanf("%s",str);char temp;int t=strlen(str);for(int i=0;i<t/2;i++)//杩欎釜寰幆鐢ㄤ簬閫嗗簭瀛樻斁鍒板師浣嶇疆 { temp=str[i];str[i]=str[t-i-1];str[t-i-1]=temp;} for(i=0;i<t;i++)printf("%c",str[i]);pri...
  • C璇█鍐欑敤涓涓鍑芥暟瀹炵幇瀛楃涓叉暟缁鐨勫掑簭杈撳嚭,杩斿洖瀛楃涓 涓嬮潰鏄垜鍐...
    绛旓細include "stdio.h"include "string.h"char *output(char name[]);main(){ char name[20];scanf("%s",name);printf("%s",output(name));} char *output(char name[]){ int i,n;char *p char b[20];n=strlen(name);for(i=0;i<n;i++)b[i]=name[n-1-i];strcpy(name,b);/...
  • 鐢–璇█缂栧啓绋嬪簭:鎺ユ敹鐢ㄦ埛杈撳叆鐨瀛楃涓,骞朵互鐩稿弽鐨勯『搴忚緭鍑鸿瀛楃涓
    绛旓細int i,len; //鎺ュ彈瀛楃涓闀垮害 char str[10000]; //瀹氫箟瀛楃鍨鏁扮粍 寮鍒10000搴旇澶熼暱浜 scanf("%s",str); //鍚憇tr鏁扮粍涓緭鍏ュ瓧绗︿覆 // gets(str); //杩欓噷鏄彟涓绉嶆柟娉 鐢ㄨ繖绉嶅彲浠ヨ鍏ョ┖鏍 len=strlen(str); //浣跨敤strlen鍑芥暟 寰楀埌瀛楃涓查暱搴 for(i=len-1;i>=0;i--)printf("%c"...
  • C璇█ 灏涓涓瓧绗︽暟缁涓殑鍊兼寜閫嗗簭閲嶆柊瀛樻斁,渚嬪鍘熸潵椤哄簭good,瑕佹眰鏀逛负...
    绛旓細void main(){ void Rev(char Str[]);char test[] = "g0ood";Rev(test);printf("%s",test);} void Rev(char Str[]){ int length = strlen(Str);int i = 0;for (i = 0; i < length/2; i++){ char temp = Str[i];Str[i] = Str[length - i -1];Str[length - i -...
  • 扩展阅读:c语言字符数组输入 ... c字符数组怎么拷贝 ... 打印字符数组c语言 ... 字符型数组c语言 ... ∧是什么运算符号 ... c语言32个关键字 ... 正确的转义字符c语言 ... c语言从文件中读取字符 ... c语言字符数组函数 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网