[問題] 字串處理完多出詭異的亂碼
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
SUSE Linux Enterprise Server 10
gcc version 4.1.0 (SUSE Linux)
各位前輩,小弟在處理字串空白遇到一個詭異的亂碼問題。當宣告兩個字元陣列,
若第二個字元陣列的size小於1000,結果就會跑出亂碼。程式碼如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void trimSpace(char *str){
int i,j=0;
char tmpstr[200];
for(i=0; i<strlen(str)-1; i++){
if( str[i]!=' ' ){
tmpstr[j++]=str[i];
}
}
strcpy(str,tmpstr);
}
int main(){
char a[200];
char b[100]; //這個字元陣列宣告若改為1000以上,則無問題。
while(fgets(a,200,stdin)){
trimSpace(a);
puts(a);
}
return 0;
}
測試資料(文字檔)如下:
hello:yoe
ooooo
bcd efg:ss
不知小弟的程式是否哪有問題呢?或是就只是因為編譯器問題?先謝謝各位。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.57.231.226
→
05/29 16:30, , 1F
05/29 16:30, 1F
→
05/29 16:54, , 2F
05/29 16:54, 2F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章