当前位置:首页 » 编程语言 » c语言给char数组赋值

c语言给char数组赋值

发布时间: 2022-09-01 17:46:12

c语言getchar()对字符数组赋值的过程是怎么呢

getchar()按顺序从缓冲区读走一个字符,相当于清除缓冲区,每读取一次缓冲区少一个字符,
例如:键盘输入数据 1 2 3 4 5 回车
输入缓冲区中数据:1 2 3 4 5 回车
点击回车后,getchar()开始从缓冲区中读取字符,一次读取一个
第一次 getchar() = '1', 缓冲区数据还有:2 3 4 5
第二次 getchar() = '2', 缓冲区数据还有:3 4 5
第二次 getchar() = '3', 缓冲区数据还有:4 5
...
直到缓冲区中的数据被读取完
int i=0; //初始化
while( (a[i++]=getchar()) != '#')
的过程相当于
do
{
a[i] = getchar();
i++;
}
while(a[i-1] != '#') //这个地方懂吧

希望对你有帮助!!

② 请问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;

③ C语言怎样给字符数组赋值

1、单字符赋值,可通过数组下标方式或指针方式,引用数组元素,进行赋值。

例子:

char a[10];

char ch='a';

for( i=0;i<10;i++ )

a[i]=ch+i ; //可通过数组下标引用数组元素,完成赋值

char *p;

for( p=a; p<a+10; p++ )

*p=ch++; //通过指针对数组相应元素赋

2、字符串赋值,可使用string.h头文件中的字符串操作函数进行赋值。

例子:

char a[10];

strcpy( a, "abcdefgh");

sprintf(a, "%s", "abcdefgh");

(3)c语言给char数组赋值扩展阅读:

C语言给字符数组赋值的优点:

1、简洁紧凑、灵活方便

C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。

2、运算符丰富

C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。

④ C语言中给char类型的数组赋值,为什么只能用strcpy而不能直接用=来赋值然后好像在初始化的

是的 初始化的时候可以 char[4] s="abc";
后面赋值只能 strcpy(s, "abc");

⑤ c语言结构体中的一个char数组怎么赋值

st.name="123"; 非法,常量字符串不能直接赋值给字符数组,因为st.name 地址是确定的,不能再改了。 char name[10]="123";可以的,定义时,进行初始化字符数组。

⑥ c语言char数组赋值

sprintf(s,"他是一个%dB",i);

⑦ C语言求助:给char某个位置赋值

1,定义 char 为"aaaaaa" ——这已经错了
可以说定义 char [] a="aaaaaa"; 是字符数组
2、要改变字符数组某元素的值,直接给该元素赋值
a[1]='b';

~
~
~
~
~
~

⑧ C语言一个给char类型数组赋值问题。

输出的时候用

inti=0;
for(i=0;i<10;i++){
printf("a[%d]=%c ",i,a[i]);
}

防止缓冲区溢出可以用这样的:

fgets(a,sizeof(a),stdin);
a[strlen(a)-1]='';
热点内容
中国银行查询密码是什么 发布:2025-01-16 02:33:20 浏览:791
坚果pro录音文件夹 发布:2025-01-16 02:31:46 浏览:938
支付宝的登录密码忘记了如何改 发布:2025-01-16 02:30:30 浏览:221
解压作业泥 发布:2025-01-16 02:28:02 浏览:806
我的世界rpg服务器空岛 发布:2025-01-16 02:26:49 浏览:90
ps脚本函数 发布:2025-01-16 02:15:28 浏览:480
android显示行数据 发布:2025-01-16 02:07:40 浏览:963
压缩皇冠 发布:2025-01-16 01:51:27 浏览:274
全键盘编程键盘 发布:2025-01-16 01:38:59 浏览:422
尾货棉服直播间脚本 发布:2025-01-16 01:21:45 浏览:228