2011-10-18 82 views
-3

我想在字符指針上應用<<移位運算符,並希望在某個位置增加此值。如何在字符指針IN上應用<<運算符和++運算符C

例如:char *p;

*p,我想在特定位置上的一些特定位置應用左移*(p+i) << 1++遞增運算符像*(p+i)++

+4

有什麼問題嗎?你展示它是如何完成的。另外,如果這是你正在做的事情,請避開凱撒·塞帕斯。他們很無用:) – sehe

回答

2

我真的不知道我理解你想要做什麼,但如果你想做的事:

*(p+i) = *(p+i) << 1; 
*(p+i) = *(p+i) + 1; //++ 

你可以重寫它們爲:

*(p+i) <<= 1; 
*(p+i) += 1; 
1

它看起來像你這樣做窮人芒混淆(而不是加密)

for (char* it=strptr; *it; it++) 
{ 
    *it <<= 1; 
    (*it)++; 
} 

(假設以空字符串結尾的str ptr)

請注意,如果這是一種編碼方案,如果使用char的高位(因此只支持7位ascii),並且解碼時需要特別注意127輸入值,則信息丟失(不可逆) 。如果你堅持你可以做。然而,你不能合法使用it++結合,因爲它會發生未定義行爲按照C++/C標準