C語言高手請進

時間 2022-11-08 03:20:12

1樓:匿名使用者

明顯有問題,你定義的a[80]已經規定了它有80個字元,但是你確定你輸入的這80字元都是有效的而不是'\0'?即如果a[80]="abc";那麼這個字元陣列後面部分有77個'\0',你一調換過來就成了a[80]="\0\0……cba",前面有77個'\0',而字串的輸出一遇到'\0'即停止了,所以你陣列的第一個元素就是'\0',所以輸出的就是空字串。 在你作迴圈交換之後,字串a的有效長度就為0了,即strlen(a)=0

2樓:匿名使用者

作如下更改即可:

#include

void main()

printf("%s",a);

}下兩句因為倒置並沒有影響到『\0』,可以不用p2=a+strlen(a);

*p2='\0';

3樓:匿名使用者

存在3個錯誤,下面程式已經給你指出來了。

#include

#include//需要加這個標頭檔案

void main()

p2=a+strlen(a);

*p2='\0';

printf("%s\n",a);//輸出應該直接寫a,而不是a[80]

}執行結果:

abcdc

cdcba

press any key to continue

4樓:

char *revers(char *src)

return src;

}有次面試做過這道題目,不能用string函式,不能使用中間變數,給你參考一下。

5樓:豆真

#include

#include//字串處理的庫

int main()

printf("%s",a); //printf("%s",a[80]);你可以理解為輸出a+80指標後的字串

system("pause");

}printf("%s",a[80]);

改成 printf("%s",a);

前面那個你可以理解為輸出a+80指標後的字串

6樓:匿名使用者

p2=a+strlen(a)-1;

p1=a;

gets(a);

順序改變一下:

gets(a);

p2=a+strlen(a)-1;

p1=a;

C語言高手請進

你的程式中存在一些邏輯問題和語法問題 編譯都過不了 1。max沒定義 2。a未定義 3。ab,cd只要十位數不為0就可以,而你卻判斷成ab 0,cd 0了 4。邏輯不夠清晰,最好有一個好的書寫習慣和風格,再多一些註釋幫你改了個新的 正確的,供參考 沒有改變你原有的變數名,最好要改一改 void js...

C語言高手請進急急

高金山 基本上就是這個思想,不太對,你再除錯一下吧 include define year 1970 typedef struct date 儲存12個月的天數 const int days 12 判斷是否為閏年 int isleapyear int year return 0 日期轉成1970年1...

C語言語句解釋,高手請進

先定義一個字元型別的變數,存放字串中的第一個字元,再將第二個字元覆蓋到第一個字元上,依次類推,然後再將你定義的存放第一個字元的字元變數覆蓋到最後一個字元上 s i s i 陣列存放下標以0開始,ch存放s 0 也就是 s 0 for迴圈是將後面的字元覆蓋到前面的字元,再將ch覆蓋到最後一個字元 s是...