在我的计划中,我正在制作char line[MAXLINE]
,然后在以下位置使用它:
fgets(line, sizeof line, f);
然后我可以用
打印这一行printf("%s\n",line);
但是,尝试类似
的内容printf("%s\n",line[10]);
警告我line[10]
类型为int
,类似
printf("%s\n",line + 10);
从角色10开始打印。
我怎样才能获得此字符串的 n 字符?
答案 0 :(得分:4)
您可以像这样获得 n 字符:
char ch = line[10];
但你不能把它打印成字符串,因为它不是一个字符串。将其打印为角色:
printf("%c\n", line[10]);
答案 1 :(得分:0)
在printf中的格式字符串中使用%s时,您正在执行的操作是从提供的指针开始打印以null结尾的字符串。
line + 10是指向字符串中第11个字符的指针,因此它会打印在内存中找到的所有内容,直到遇到/ 0(null)字符。
要打印单个字符,您必须在格式字符串中使用%c。
printf("%c",line+10);
答案 2 :(得分:0)
printf("%s\n",line + 10); // %s expects a char *
而是像这样打印 -
printf("%c\n",line + 10);
我怎样才能得到这个字符串的第n个字符?
使用strlen()
中的<string.h>
函数,您可以获得字符串的长度。因此,您可以轻松获得第n个字符。字符串。
答案 3 :(得分:0)
下面的内容也将作为C中的字符串,是指向第一个字符的char
指针。 (字符串在字符串中以字符\0
终止,这是程序知道它们结束位置的方式。)
line
是指向第一个字符的指针,它可以前进到第10个字符,如下所示(我们必须将其前进9,因为没有前进指向第一个字符)。
*
取消引用指针以获取实际值。
#include <stdio.h>
int main()
{
char line[] = "abcdefghijkl";
printf("%c\n", *(line+9));
return 0;
}