#include
2006-10-15 00:24:26 · 5 個解答 · 發問者 NidgetGod 6 in 電腦與網際網路 ➔ 程式設計
這個程式有些小問題
1. cout << "輸出結果:" << empty( str ) << endl;
但是empty回傳void, 結果是在empty這個function裡面做cout,
這樣外部的cout就變成多餘的了!
如果要使用empty中處理過的字串,建議empty宣告成char* empry(char* s)會比較好一點
2. for( int i = 0; i < strlen(s); i++ ) {
if( s[i] == '\0' ) {
s[i] = s[i++];
i = 0;
}
也就是說 if( s[i] == '\0' )
s[i] = s[i];
i++;
i = 0;
我想這樣是相同的意思....但是....用意?...
所以基本上照原本的程式來講,empty這個function是多餘的..
cout << "請輸入字串: ";
cin >> str;
cout << "輸出結果:" << empty( str ) << endl;
其實只需要cout << "輸出結果:" << str << endl;就可以達到效果了..
難道有特殊用意?這我就看不太出來了...@@
2006-10-15 05:20:43 · answer #1 · answered by 子彥 2 · 0⤊ 0⤋
1. 先檢查參數是否為NULL. 2. 用isspace()代替"檢查是否為空白". isspace()的定義是(0x09-0x0D,0x20)為true!
2006-10-17 12:56:20 · answer #2 · answered by 豬鼻子大媽 2 · 0⤊ 0⤋
用 Trim() 移除所有空白, TrimLeft(), TrimRight() 清除左/右空白
char* Trim(char* pStr)
{
int nLen = strlen(pStr);
char* pTarget=pStr;
for ( int i=0; i
*pTarget++=pStr[i];
}
}
*pTarget='\0'; // 填入字元結束符號
return pSrc;
}
void main()
{
... // 不變
}
2006-10-15 06:05:35 · answer #3 · answered by none 4 · 0⤊ 0⤋
不行耶...一樣的錯誤!!
2006-10-15 05:00:47 補充:
homework1011_3.cpp(16) : error C2664: 'empty' : cannot convert parameter 1 from 'char [100]' to 'char'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
這是改過後的錯誤訊息...不瞭它的意思!!
2006-10-15 00:58:29 · answer #4 · answered by NidgetGod 6 · 0⤊ 0⤋
cout << "輸出結果:" << empty( str ) << endl;
把這行改成……
cout << "輸出結果:";
empty( str );
cout << endl;
還有我不太懂你的函式是在做啥麼?
2006-10-15 08:42:51 補充:
void empty( char );
要改成……
void empty( char s[] );
2006-10-15 00:42:49 · answer #5 · answered by Big_John-tw 7 · 0⤊ 0⤋