程式設計題:7-11 字串逆序
阿新 • • 發佈:2021-02-14
技術標籤:# 浙大版《C語言程式設計(第3版)》題目集c語言程式語言
題目要求:
輸入一個字串,對該字串進行逆序,輸出逆序後的字串。
題目格式:
輸入在一行中給出一個不超過80個字元長度的、以回車結束的非空字串。
輸出格式:
在一行中輸出逆序後的字串。
輸入樣例:
hello world!
輸出樣例:
!dlroW olleH
程式碼實現:
void reverseList(char* pa,int i)
{
int left = 0;
int right = i - 1;
while (left < right)
{
char tmp = pa[left];
pa[ left] = pa[right];
pa[right] = tmp;
left++;
right--;
}
}
int main()
{
char arr[80] = {0};
int i = 0;
while ((arr[i] = getchar()) != '\n')
{
i++;
}
arr[i] = '\0';
reverseList(arr,i);
printf("%s\n", arr);
return 0;
}
執行效果:
總結:
1、 此道題目不能用scanf進行從鍵盤鍵入一個字串,因為對於scanf,遇見空格或者回車鍵即停止,舉個例子:當我們運用scanf從鍵盤輸入“hello world!”時,打印出來是“hello”。於是我們考慮運用getchar()去讀取從鍵盤輸入的字串,字串裡可以包括空格等。就是利用一個迴圈,用getchar()去一個一個讀取放到陣列arr中,直到arr[i]讀取到‘\n’,結束迴圈。記住最關鍵的一步,就是結束後的時候,將此時的arr[i]賦值為’\0’。