#include "stdio.h"
#include "stdafx.h"
#include "iostream"
using namespace std;
int main()
{
char c[256], d[256];
int i = 0;
while
((c[i++] = getchar()) != '\n');
c[i] = '\0';
i = 0;
printf("%s", c);
printf("\n");
while (c[i])
{
if ('a' <= c[i] && c[i] <= 'z')
{
c[i] -= 32;
}
else if ('A' <= c[i] && c[i] <= 'Z')
{
c[i] += 32;
}
d[i] = c[i];
i++;
}
printf("%s", d);
printf("\n");
return 0;
}
如圖代碼所示,每次轉化後都會多輸出一行亂碼,問題已經解決,
我把while(c[i])換成while(i<sizeof(c))就輸出正常了,我想知道為什麼
while(c[i])有什麼錯誤,多謝大神~!
建議你先初始化數組 c 和 d 的所有元素為零,因為局部變量的初始值是隨機的。
假如你只給 c 和 d 的前 100 個元素賦值了,才能後面的 156 個元素的值就是隨機數。當你用 c[i] 判斷時,因為沒有 0 數值的存在,導致越界了。