gpt4 book ai didi

c - 访问字符串元素困惑

转载 作者:行者123 更新时间:2023-11-30 17:19:14 25 4
gpt4 key购买 nike

我知道字符串元素的访问方式与其他数组类似。我用过printf("%c",str[i]);打印字符串中的每个字符。使用此 printf("%c",str[0]+i)该代码打印出字符串中的第一个字符,然后是连续的字符,并在字符串长度的末尾停止。

<小时/>

我想知道为什么会发生这种情况?

#include<stdio.h>
#include<string.h>
int main()
{
char *str= "string" ;
int s = strlen(str) ;
int i ;
for (i=0;i<s;i++)
{
printf("%c",str[i]); //valid
}
for (i=0;i<s;i++)
{
printf("\n%c",str[0]+i); //not valid
}
printf("\nThe length of string : %d\n ",s);
return 0 ;
}

最佳答案

你可能想要

printf("%c",*(str+i))

而不是

printf("%c",str[0]+i)

当您使用str[0]+i时,i会添加到str[0]中。 the ASCII table 中表示的字符是连续的,并且将数字(例如 1)添加到字符(例如 's'),会产生字符 't',因为 t 出现就在 ASCII 表中的 s 之后。

关于c - 访问字符串元素困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28926665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com