2015-04-23 99 views
-6

我的意思是有可能打印一個字符串,如(「你好」),即只是「e」或「l」。 我想我可以做到與此代碼:是否有可能只打印一個字節的字符串?

char *gg = "hello"; 
printf("%.4s \n",gg + strlen(gg) - 2); 

,但它不工作。

+3

您只需將「%.4s \ n」更改爲「%c \ n」,並將* glen + strlen(gg) - 1)解除引用即可。 –

+1

@ParhamAlvani:我想你的意思是''%.1s「'。你需要'%s'作爲字符串('gg + strlen(gg) - 2')和''%c「'。 – pmg

+0

@pmg Ok%s爲字符串,但你想從它1個字節,所以你需要%c。在C中,當你說打印%s時,你的意思是去讀字符串直到\ 0,當你說打印%c時,你的意思是隻打印一個字符。 –

回答

2

您將要執行以下操作:

char *gg = "hello"; 
printf("%c\n", gg[3]); 

這將打印第四個字符(零基於陣列= 0,1,2,3,從而0 = 'H',1 = 'E',等等)。改變你想要的任何角色的3,但要確保不要超過字符串的末尾。 strlen會告訴你字符串的長度。

+0

OP要求'e'或者'l',但是因爲有'l'兩個,所以'e'上的答案會更加清晰'g' [1]'(儘管他的代碼正在嘗試'gg [3]')。 –

+0

我使用'e'或'l'解釋OP的問題只是單個字符的例子。我的回答給出了最後的'l',就像他的strlen() - 2所建議的那樣。我猜如果字符很重要,代碼將不得不搜索它,但這沒有意義。 – hvanbrug

相關問題