因此,我對C語言很陌生,我試圖編寫一個程序,輸出大寫或小寫的文本,方法是輸入-u或-l。該程序編譯,但是當我運行它時,它給我一個分段錯誤。爲什麼?C在嘗試運行時出現分段錯誤
#include <stdio.h>
#include <string.h>
int main(int argc, char*argv[]){
int i;
int j;
int k;
if(strcmp(argv[1],"-u")){
for(i=0;i<argc;i++){
printf("%s ",toupper(argv[i]));
}
}
else if(strcmp(argv[1],"-l")){
for(j=0;j<argc;j++){
printf("%s ",tolower(argv[j]));
}
}
else{
for(k=0;k<argc;k++){
printf("%s ",argv[k]);
}
}
}
'strupr'代替'toupper'和'strlwr'代替'tolower', – BLUEPIXY
還要考慮的情況下的argc <2 –
'strupr()'/'strlwr ()'不是C也不是POSIX,可能只能作爲後者的擴展,所以不是portabe。 @BLUEPIXY – alk