c语言chars
Ⅰ 请问c语言 char类型的指针要怎么赋值
#include<stdio.h>
#include<conio.h>
char find_char( char const *source, char const *chars );
int main()
{
char source[100]={'\0'}, chars[100]={'\0'}, find_;
printf("Please input source and chars.\n");
gets(source);//用gets函数输入一行字符,保存在数组source中
gets(chars); //用gets函数输入一行字符,保存在数组chars中
find_=find_char(source,chars);
if(find_=='\0')
printf("not found.");
else
printf("%c", find_);
printf("\nend of program\n");
getch(); //要包含头文件 conio.h
return 0;
}
/*find_char:查找source串中是否含有chars中的任意字符,
是则返回具体是哪个字符,否则返回'\0'*/
char find_char( char const *source, char const *chars)
{
int i, j;
for(i=0; source[i]!='\0'; i++){
for(j=0; chars[j]!='\0'; j++){
if(source[i] == chars[j]){
return source[i]; //这里返回的是字符,所以函数返回类型改为char
break;
}
}
}
return '\0'; //默认也要返回
}
Ⅱ c语言中char*是什么意思
楼上完全是误导抄人,什么
字符变量
啊!
char
是一个数据类型,作用才是定义字符型变量(单个或是字符串)。
比方知int
是整形数据,int
a
=
3;这里int
是类型,
a
是
整型变量
,3是赋值;
char
s
=
'A';
char是字符道类型,s是字符型变量,A是赋值给变量s;
char
s[]
=
"c
program";
char是字符类型,s[]是字符型数组,"c
program"是赋给数组的值
Ⅲ C语言中char s="test";在内存中占几个字节
这句代码有误,编译会报错。。。如果你想问的是"test"这个字符串占几个字节的话,它在内存中占5个字节的,但是它的长度是4
Ⅳ sizeof(chars)是什么意思不明白
sizeof 是用来求变量或类型所占用的字节数的。比如
sizeof(char) 返回字符类型占用的字节数,
sizeof(a)返回变量 a 占用的字节数。
Ⅳ C语言中的char型数据是什么意思
楼上完全是误导人,什么字符变量啊!
char
是一个数据类型,作用才是定义字符型变量(单个或是字符串)。
比方int
是整形数据,int
a
=
3;这里int
是类型,
a
是整型变量,3是赋值;
char
s
=
'a';
char是字符类型,s是字符型变量,a是赋值给变量s;
char
s[]
=
"c
program";
char是字符类型,s[]是字符型数组,"c
program"是赋给数组的值。
Ⅵ c语言里,scanf("%s",chars); 如果我一直输入空格,它就一直不会读取是吗(直到我输入一个非空字符)
c语言里,scanf("%s",chars); 如果一直输入空格,它就一直读取不到chars数组的内容。
scanf()是从第一个非空白字符开始读入的(scanf根本不读入空格当然是从第一个非空格读入),详细地说,当我们输入数据时,在按下回车键前输入的数据都储存在缓冲区,按下回车键后,会把数据及换行符一起传送到标准输入流中,scanf就是从标准输入流中读取数据,它会在其中查找,跳过空白符(空格 换行符 制表符)(scanf不能读取空白符的原因也是如此)。
Ⅶ c语言的数组赋值问题
C语言中,字符串以全0为结束,第二个中没有结束点,用s[11]表示,c编译器会自动在字符串未尾加全0共占据11个元素位置
Ⅷ 关于C语言的char *和scanf的问题
问题出在scanf:
scanf("%s",&chars);
这种用法是错误的, chars本身就是字符指针(指向字符串数组的首地址),所以不需要再取地址了。
应该改为scanf("%s", chars);
或者scanf("%s", &chars[0]);//这是一种画蛇添足的方法,但这个效果和上面式子的效果一样,明白了这点,也就明白这个问题了。
Ⅸ c语言题目:已知有声明"char s[20]="Hello";",在程序运行过程中,若要想使数组s
选D!
把字符串存储到一个数组中,就要用strcpy()函数。
数组不是单个
变量,所以不能直接用赋值语句!
所以,A,B都是错误的。
具体地说:
A中,s是数组s[20]的地址,是个地址常量,把字符串赋给一个地址常量是错误。
B中,s[20]是不是数组s[20],
而是一个变量s[20],
它是不存在的。当你定义了数组s[20]后,就只存在s[0],
s[1],
s[2],
...,
s[19],
不存在s[20].
而且,只有在定义时的s[20]才是整个数组,定以后的s[i]是一个变量。
也只有在定义时,才能对数组用赋值语句赋值,如:char
s[20]="Hello";
定义后,只能用函数strcpy()对数组存储字符串。PS:
strcpy,
即
string
.
至于C的strcat()函数,我没见过,不知道,估计也是错的。
Ⅹ 请问C语言 char类型的指针要怎么赋值
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char *source = malloc(20*sizeof(char);
printf("Please input source \n");
scanf("%s",source);//f方法三
printf("%s\n",source);
char *temp = "my input source"
sprintf(source,"%s",temp);//方法一
printf("%s\n",source);
strcpy(source,temp);//方法二
printf("%s\n",source);
return 0 ;
}
指针是无法存放字符串的,只有指针指向的那块空间才能存放字符串,所以我第一句话给它开辟了20个空间,这样就可以给指针指向的那块空间赋值了,谢谢
另外给你一个建议 char *a = NULL,*b =NULL,*c =NULL;这样的写法是不规范的,很容易出错。标准形式应该是char *a= NULL;
char *b = NULL;
char *c = NULL;