在C中访问字符指针字符串中的特定字符
我正在使用在C中访问字符指针字符串中的特定字符,c,C,我正在使用scanf读取字符串并将其放入char* scanf("%s", &str); printf("%c",str); 它工作正常,但我不知道如何访问该字符串中的特定字符,就像使用char[]一样。我一直在尝试增加地址: str += 1; 我一直在胡闹,但我得到的只是第一个字符或SEGFULTS或总线错误。是否可以在不复制到char[]的情况下使用该字符串?如果str声明为char*,则此语句 scanf("%s", &str); printf("%c",str);
scanf
读取字符串并将其放入char*
scanf("%s", &str);
printf("%c",str);
它工作正常,但我不知道如何访问该字符串中的特定字符,就像使用char[]一样。我一直在尝试增加地址:
str += 1;
我一直在胡闹,但我得到的只是第一个字符或SEGFULTS或总线错误。是否可以在不复制到
char[]
的情况下使用该字符串?如果str声明为char*
,则此语句
scanf("%s", &str);
printf("%c",str);
这是不正确的。一定有
scanf("%s", str);
printf("%c", *str);
下一句话呢
scanf("%s", &str);
printf("%c",str);
这也不正确。一定有
scanf("%s", str);
printf("%c", *str);
如果要使用指针char*
在字符数组中输出其他字符,则可以编写
printf( "%c", *( str + n ) );
或
甚至
printf( "%c", n[str] );
其中n是小于strlen(str)
考虑到str应该指向一些分配的内存。否则程序将具有未定义的行为。1)
只需使用[]解除对指针数组的引用,并访问位置“i”处的字符
(二)
是-arrayname本身是指向字符串第一个字符的指针如何分配内存?我猜您正在尝试写入未初始化的指针;scanf(“%s”和&str);str+=2;printf(“%c”,(str));如果我键入“TEST”,我将在标准输出中得到一个“V”。您需要在问题中输入该信息。@user161794它与&str一起工作,因为str和&str的值相同,尽管表达式的类型不同。char*str;scanf(“%s\n”,str);int i;对于(i=0;i
scanf(“%s”,…)
??@user161794是的,这是一样的。