我的意思是有可能打印一個字符串,如(「你好」),即只是「e」或「l」。 我想我可以做到與此代碼:是否有可能只打印一個字節的字符串?
char *gg = "hello";
printf("%.4s \n",gg + strlen(gg) - 2);
,但它不工作。
我的意思是有可能打印一個字符串,如(「你好」),即只是「e」或「l」。 我想我可以做到與此代碼:是否有可能只打印一個字節的字符串?
char *gg = "hello";
printf("%.4s \n",gg + strlen(gg) - 2);
,但它不工作。
您將要執行以下操作:
char *gg = "hello";
printf("%c\n", gg[3]);
這將打印第四個字符(零基於陣列= 0,1,2,3,從而0 = 'H',1 = 'E',等等)。改變你想要的任何角色的3,但要確保不要超過字符串的末尾。 strlen會告訴你字符串的長度。
OP要求'e'或者'l',但是因爲有'l'兩個,所以'e'上的答案會更加清晰'g' [1]'(儘管他的代碼正在嘗試'gg [3]')。 –
我使用'e'或'l'解釋OP的問題只是單個字符的例子。我的回答給出了最後的'l',就像他的strlen() - 2所建議的那樣。我猜如果字符很重要,代碼將不得不搜索它,但這沒有意義。 – hvanbrug
您只需將「%.4s \ n」更改爲「%c \ n」,並將* glen + strlen(gg) - 1)解除引用即可。 –
@ParhamAlvani:我想你的意思是''%.1s「'。你需要'%s'作爲字符串('gg + strlen(gg) - 2')和''%c「'。 – pmg
@pmg Ok%s爲字符串,但你想從它1個字節,所以你需要%c。在C中,當你說打印%s時,你的意思是去讀字符串直到\ 0,當你說打印%c時,你的意思是隻打印一個字符。 –