#include <stdio.h>
int main(void)
{?char str[100]="I am a stuz";
?char *p= &str[7];
?int i;
?for (i=0; str[i] != '\0'; i++, p++ )
?{?if( *p>='a' && *p<'z' )
???(*p)++;
??else if( *p == 'z' )
???*p = 'a';
?}
?puts( str );
?return 0;
}
為什么結果是最后四個字母往后移一位,其余的不變呢?
uj5u.com熱心網友回復:
建議學會除錯uj5u.com熱心網友回復:
if( *p>='a' && *p<'z' )
???(*p)++;
(*p)++這是先取參考,然后把參考的值+1。
這兩條陳述句就是讓's'變成't','t'變成'u', 'u'變成'v',
然后
else if( *p == 'z' )
???*p = 'a';
這兩條陳述句就是讓'z'變成'a';
建議樓主還是看明白代碼,代碼也不復雜,不難分析。主要的就是4條陳述句。
uj5u.com熱心網友回復:
?char *p= &str[7];指標從這里開始,所以前面的沒變
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/125672.html
標籤:C語言
上一篇:求詳細解答
