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

如字符串string str=asdfgh,怎样才能得到其中的任意一个字符呢?

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

存储在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<<endl; 
    } 
    cout<<endl;
    
    for( int i=0;i<s.length();i++ ) 
    { 
        cout<<s[i]<<endl; //使用数组方式调用,得到单个元素
    }

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-04-04
根据字符串存储的变量的不同,方法不同,参考代码:
存储在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
加载更多
第2个回答  2019-01-06
根据字符串存储的变量的不同,方法不同,参考代码:
存储在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个回答  2020-03-25
错误在于你判断了第一个非@字符时就已经输出没有字符@退出循环了所以不会检测@了。改成下面就行了:
#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个回答  2009-02-25
记得前面加上include<cstring>
str[i];(i就是你想要的字符所在位置)

#include <stdio.h>
#include <cstring>

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