用下面的C函數,我想要檢索索引IDX從一些字符串信:檢索串字母用C
char get_letter(char *str, int idx)
{
return *(str + idx);
}
例如,以下內容:
char s[] = "Barack";
get_letter(s,2);
應返回字母'r'。
這裏是整個程序(可執行文件的名稱是「檢索」):
int printf(const char * restrict, ...);
char get_letter(char *, int);
int main(int carg, const char **varg){
if (carg != 2) return -1;
printf("%s", get_letter(varg[1],1));
return 0;
}
char get_letter(char *str, int idx)
{
return *(str + idx);
}
當我運行該程序:不但得不到字母「e」(例如./retrieve測試) ,我收到一條錯誤消息(「Segmentation fault:11」)。 這裏怎麼回事?
錯誤必須在於您打印結果的方式:您的示例代碼會丟棄答案。請發佈顯示問題的[Minimal,Complete和Verifiable示例](http://stackoverflow.com/help/mcve)。當我printf(「%c \ n」,get_letter(s,2));'結果是期望的''r''。 –