在c语言中如何通过索引从字符串中获取字符?

在c语言中如何通过索引从字符串中获取字符?,c,string,C,String,但是我想要的是第二个数字,即4。如何修复它?您需要为printfs指定格式字符串。第一个需要字符串格式“%s”,第二个需要单个字符“%c”。您可以在printf()的格式化字符串中找到有关所用格式的所有详细信息 #包括 int main(){ char-str[11]; int-num; scanf(“%s%i”、&str、&num); printf(“您键入了%s和%i\n”,str,num); 如果(num==0) { printf(“%s”,str); } 其他的 { printf(“%c

但是我想要的是第二个数字,即
4
。如何修复它?

您需要为printfs指定格式字符串。第一个需要字符串格式“
%s
”,第二个需要单个字符“
%c
”。您可以在
printf()
的格式化字符串中找到有关所用格式的所有详细信息

#包括
int main(){
char-str[11];
int-num;
scanf(“%s%i”、&str、&num);
printf(“您键入了%s和%i\n”,str,num);
如果(num==0)
{
printf(“%s”,str);
}
其他的
{
printf(“%c”,str[num]);
}
返回0;
}

您需要为printfs指定格式字符串。第一个需要字符串格式“
%s
”,第二个需要单个字符“
%c
”。您可以在
printf()
的格式化字符串中找到有关所用格式的所有详细信息

#包括
int main(){
char-str[11];
int-num;
scanf(“%s%i”、&str、&num);
printf(“您键入了%s和%i\n”,str,num);
如果(num==0)
{
printf(“%s”,str);
}
其他的
{
printf(“%c”,str[num]);
}
返回0;
}

您必须使用printf函数指定要打印的内容

#include <stdio.h>

int main() {
    char str[11];
    int num;
    scanf("%s %i", &str, &num);
    printf("You typed %s and %i\n", str, num);
    if (num == 0)
    {
        printf ("%s", str);
    }
    else
    {
        printf ("%c", str[num]);
    }
    return 0;
}
使用%c,可以告诉函数要打印字符。 如果要打印整个字符串,应使用%s


顺便说一句,您应该始终指定格式化字符串,因为如果不指定它,它是不安全的

必须使用printf函数指定要打印的内容

#include <stdio.h>

int main() {
    char str[11];
    int num;
    scanf("%s %i", &str, &num);
    printf("You typed %s and %i\n", str, num);
    if (num == 0)
    {
        printf ("%s", str);
    }
    else
    {
        printf ("%c", str[num]);
    }
    return 0;
}
使用%c,可以告诉函数要打印字符。 如果要打印整个字符串,应使用%s


顺便说一句,您应该始终指定格式化字符串,因为如果不指定它,它是不安全的

节省时间。启用所有警告。我希望得到关于
printf(str[num])的有用警告
使用scanf()注意
%i
%d
之间的区别。虽然
%i
很好,因为您可以认为i=integer,但您通常需要
%d
%d始终以10为基数,并且%i将自动协商,例如,将
012
作为八进制表示10,或将
0x123
作为十六进制表示291,这有时可能会有问题,除非您计划将八进制或十六进制值作为输入,使用scanf或sscanf使用
%d
。节省时间。启用所有警告。我希望得到关于
printf(str[num])的有用警告
使用scanf()注意
%i
%d
之间的区别。虽然
%i
很好,因为您可以认为i=integer,但您通常需要
%d
%d始终以10为基数,%i将自动协商,例如,将
012
作为八进制表示10或
0x123
作为十六进制表示291,这有时可能会有问题,除非您计划将八进制或十六进制值作为输入使用
%d
与scanf或sscanf。
中的
scanf(“%s%i”中,&str,…
是技术UB。在
scanf中使用
scanf(“%s%i”,str,…
更好(“%s%i”,str,…
是技术UB。使用
scanf(“%s%i”,str,…
#include <stdio.h>

int main() {
    char str[11];
    int num;
    scanf("%s %i", &str, &num);
    printf("You typed %s and %i\n", str, num);
    if (num == 0)
    {
        printf ("%s", str);
    }
    else
    {
        printf ("%c", str[num]);
    }
    return 0;
}
printf("%c", str[num]);