使用以下C函数,我想从某个字符串中检索索引idx处的字母:
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);
}
当我运行程序时(例如:./ reveve test),而不是收到字母" e",我收到一条错误消息("分段错误:11")。 这里出了什么问题?
答案 0 :(得分:1)
可以用C语言打印字符如下:
Users
工作代码:
char c = 'j';
printf("%c",j);
答案 1 :(得分:0)
我明白了......在打印功能中它必须是%c而不是%s。
答案 2 :(得分:0)
您正在返回一个char *,但您的返回类型是char。
将您的退货单更改为return str[idx];
为什么你需要一个功能呢?你可以写s[idx]
。我很好奇这个原因。