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

供稿:hz-xin.com     日期:2025-01-16
C语言中怎么查找字符串数组中的某个字符?

程序有误,修改如下:
#include
#include
void main(){
char sh[20];
gets(sh);
for(int i=0;i<20;i++)
{
if(sh[i]='@')
{
printf("判断出有字符@
");
break;
}
if(sh[i]='\0')printf("无字符@
");
}
}
扩展资料:
数组的使用规则:
1.可以只给部分元素赋初值。当{ }中值的个数少于元素个数时,只给前面部分元素赋值。例如:static int a[10]={0,1,2,3,4};表示只给a[0]~a[4]5个元素赋值,而后5个元素自动赋0值。
2.只能给元素逐个赋值,不能给数组整体赋值。例如给十个元素全部赋1值,只能写为:static int a[10]={1,1,1,1,1,1,1,1,1,1};而不能写为:static int a[10]=1;请注意:在C、C#语言中是这样,但并非在所有涉及数组的地方都这样,数据库是从1开始。
3.如不给可初始化的数组赋初值,则全部元素均为0值。
4.如给全部元素赋值,则在数组说明中, 可以不给出数组元素的个数。例如:static int a[5]={1,2,3,4,5};可写为:static int a[]={1,2,3,4,5};动态赋值可以在程序执行过程中,对数组作动态赋值。这时可用循环语句配合scanf函数逐个对数组元素赋值。
参考资料:
百度百科-数组

C语言关于字符串的学习,打印并输出我们的字符串(string)

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

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

char str[]="hello" ;
int i;
for( i=0;str[i];i++ )
    printf("%c
", str[i] ); //以数组方式引用一个字符:str[i] 
for( i=0;*(str+i);i++ )
    printf("%c
", *(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; //使用数组方式调用,得到单个元素
    }


根据字符串存储的变量的不同,方法不同,参考代码:
存储在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
加载更多

根据字符串存储的变量的不同,方法不同,参考代码:
存储在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
加载更多

错误在于你判断了第一个非@字符时就已经输出没有字符@退出循环了所以不会检测@了。改成下面就行了:
#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");
}

记得前面加上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;
}

C语言如何取一串字符串中的某个字符
C语言中的字符串是由字符数组构成的。例如:char s[10]="wo shi SB"; char c; 若要获取字符串中的第一个字符,可以使用如下方式:c=s[0]; 这种方法适用于获取字符串中的任意一个字符,只需将下标替换为所需的字符位置即可。在实际应用中,如果需要获取字符串中的多个字符,可以使用循环进行遍历...

c语言怎么把字符串中的某一部分提取出来?
2. 使用指针操作:通过指针操作可以更灵活地提取字符串中的某一部分。通过指针移动和赋值操作,可以直接访问和操作字符数组中的元素。例如:c char str[] = "hello world";char *ptr = str + 6; \/\/ ptr指向'w'字符的位置 char extracted[10]; \/\/ 存储提取的字符串结果,考虑到可能超出原字符...

C语言中怎样读取一行字符中的一个字符
C语言提供了多种方式来读取字符。其中,int getchar(void);函数用于读取一个字符。此函数返回的类型为int,实际返回的是字符的ASCII码值。通过循环调用getchar(),可以逐个读取一行字符中的每一个字符。除了getchar(),还有另一种方法来读取一行字符,即使用gets(char *str)函数。该函数可以读取一整行...

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...

c语言截取字符串其中一部分。
详细解释:C语言中的字符串实际上是字符数组,可以通过指针和索引来操作。如果要截取字符串的一部分,可以利用指针运算或者`strncpy`函数来实现。其中,`strncpy`函数是最常用的方法之一。具体来说,`strncpy`函数的用法如下:1. 目标字符串:这是你想要存放截取部分的字符串的变量。2. 源字符串:这是...

c语言中怎么输出字符串中的某个字符
c语言中的字符串实际上是字符数组,如果想输出某位上的字符,可采用数组元素输出方式进行输出,如:char s[]="abcde";printf("%c", s[3] ); \/\/输出第四个字符'd',%c表示输出单个字符 还可以采用指针方式输出相应位的字符,如:char *p=s ; \/\/字符字符指针p,指向字符串首地址 printf("%c...

C语言如何实现取字符串的一部分?
例子如下:直接编译,程序输出结果中任意输入字符串和数字,程序执行结果如下图所示:

c语言中怎么从字符串中取字符
char s[]="ssssabedbewb";int len;char *p;s[2]; \/\/第一种方法 printf("输入输入字符串的长度:");scanf("%d",&len);printf("输入字符串:");p=malloc(len);scanf("%s",p);printf("%c",p[3]); \/\/第二种方法 显然第二种方法更灵活,不过就是有点烦 ...

C语言如何取一串字符串中的某个字符
C中的字符串就是一个字符数组。如:char s[10]="wo shi SB";char c;取最左边的字符,就是c=s[0];

C语言中,如何输出一个字符串中的字符?
include <stdio.h> int main() { char str[] = "hello, world!";int len = sizeof(str) \/ sizeof(char); \/\/ 计算字符串的长度 for (int i = 0; i < len; i++) { printf("%c ", str[i]); \/\/ 逐个输出字符串中的字符 } return 0;} ...