以下是分配:編寫一個將char數組作爲輸入參數並反轉字符串的函數。該功能應該使用兩個指針,前後。前面的指針最初應該引用字符串中的第一個字符,後面的指針最初應該引用字符串中的最後一個字符。通過交換前後引用的字符來反轉字符串,然後增加前部指向下一個字符並減少後部指向前一個字符,依此類推,直到整個字符串反轉爲止。C++編程分配程序中斷信號11
然後編寫一個主函數,該函數將一個字符串作爲用戶的輸入並打印反轉的字符串(使用上述函數)。所有輸入字符串都將爲100個字符或更少。
您必須使用指針來反轉數組。
如果使用動態數組(不是必需的),則必須在程序結束之前刪除分配給任何動態數組的所有內存。
該代碼是正確的。當我手動執行時,它可以包含所有字符。只是不知道爲什麼我會提交測試,它會錯過最後一個字符。以下是錯誤消息:[http://i.stack.imgur.com/Qukiw.png]
這裏是我的代碼:
#include <iostream>
#include <cstdlib>
#include <cctype>
#include <string.h>
using namespace std;
void reverse(char *s);
int main()
{
char str[100] = "";
cout << "Enter string:" << endl;
cin.getline(str,100);
reverse(str);
cout << "The string reversed is:" << endl;
cout << str << endl;
return 0;
}
void reverse(char *s)
{
char *front, *rear, temp;
front = s;
rear = s + strlen(s)-1;
while (front < rear)
{
temp = *front;
*front = *rear;
*rear = temp;
front++;
rear--;
}
return;
}
任何幫助表示讚賞,謝謝!
爲什麼不使用'std :: sting str(「」);'而不是'char str [101] =「」;'?會讓你的生活變得容易不要告訴我請_「但我的教授限制等等」_,在這種情況下跳過這門課,並試圖找到真正教你C++的人。 –
@πάνταῥεῖ:這一切都很好,但它並不能解釋爲什麼網站顯示錯誤,當沒有(再)。這個課程似乎是......不可思議(說得溫和),但我想他必須忍受它。像其他類似課程的人一樣(可能是相同的)。現在我已經看到了這樣的輸出。 –
FWIW,您的代碼在ideone上運行良好:https://ideone.com/i20SYm。 –