C语言中怎样获得字符串中的单个字符

如字符串string str=asdfgh,怎样才能得到其中的任意一个字符呢?
2024-12-04 13:36:32
推荐回答(4个)
回答(1):

根据字符串存储的变量的不同,方法不同,参考代码:

存储在char数组中(支持C/C++)

char str[]="hello" ;
int i;
for( i=0;str[i];i++ )
    printf("%c\n", str[i] ); //以数组方式引用一个字符:str[i] 
for( i=0;*(str+i);i++ )
    printf("%c\n", *(str+i) ); //以指针方式引用一个字符:*(str+i)

存储在string中(仅支持C++)

    string str="abcde";
    for(string::iterator iter = s.begin(); iter!=s.end(); iter++) //使用迭代器
    { 
        cout<<*iter<    } 
    cout<    
    for( int i=0;i    { 
        cout<    }

回答(2):

根据字符串存储的变量的不同,方法不同,参考代码:
存储在char数组中(支持C/C++)
char str[]="hello" ;
int i;
for( i=0;str[i];i++ )
printf("%c\n", str[i] ); //以数组方式引用一个字符:str[i]
for( i=0;*(str+i);i++ )
printf("%c\n", *(str+i) ); //以指针方式引用一个字符:*(str+i)存储在string中(仅支持C++)
string str="abcde";
for(string::iterator iter = s.begin(); iter!=s.end(); iter++) //使用迭代器
{
cout<<*iter<
评论
0
0
加载更多

回答(3):

错误在于你判断了第一个非@字符时就已经输出没有字符@退出循环了所以不会检测@了。改成下面就行了:
#include
#include
int
main()
{
char
sh[100],n=0;
gets(sh);
for(int
i=0;sh[i];i
)
if(sh[i]=='@')
n
;
if(n==0)
printf("没有字符
@\n");
else
printf("有字符
@\n");
}

回答(4):

记得前面加上include
str[i];(i就是你想要的字符所在位置)

#include
#include

int main(void)
{
char string[9]="abcdefg";
printf("%c\n",string[2]); // string[i]输入第i+1个字符
return 0;
}