代碼之間的一些差異所以我做了一些代碼:在記事本和碼VS
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>
#define SMALLSTRLEN 3
#define BIGSTRLEN 4
#define SMALLASCIIA 97
#define BIGASCIIA 65
#define BIGASCIIZ 90
#define SMALLASCIIZ 122
int main(void)
{
int i = 0,j=0,q=0;
char str[] = "SHaddOW";
char smallStr[SMALLSTRLEN];
char bigStr[BIGSTRLEN];
printf("%s", str);
for (i = 0; str[i]; i++)
{
if ((str[i] >= SMALLASCIIA) && (str[i] <= SMALLASCIIZ))
{
smallStr[j] = str[i];
j++;
}
else if ((str[i] >= BIGASCIIA) && (str[i] <= BIGASCIIZ))
{
bigStr[q] = str[i];
q++;
}
}
bigStr[q] = "\0";
puts(smallStr);
puts(bigStr);
printf("\n\n\n%s", bigStr);
//getchar();
system("PAUSE");
return 0;
}
的bigStr
需要有所有的大寫字母,並從該smallStr
所有的小寫字母原件str
。使用gcc編譯器的記事本++中的輸出是:bigStr= SHOWadd , smallStr = add
有人可以告訴我是什麼問題?
編譯器應該給你一個警告,解釋問題的一部分。如果你不修復編譯器警告,那麼你不應該期望你的代碼工作。其他問題:'BIGSTRLEN'和'SMALLSTRLEN'不夠大,'smallStr'需要NUL終結符。 – user3386109
爲什麼'#define BIGASCIIA 65'? A並不總是65.使用「A」代替,更正確,更易於閱讀 –