C语言中如何一次给一个数组变量赋值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中如何一次给一个数组变量赋值相关的知识,希望对你有一定的参考价值。

就是假设数组是A[20]
如何用scanf的方法给20个数都覆上值?
如果不能用这种方法请给我讲讲别的谢谢

1.引入头文件#include "stdafx.h"和#include "stdio.h"。

2.定义主函数void main(),在主函数中插入如下代码:

int number[11];

int i = 0;

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

number[i]=i+1;

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

printf("%d ",number[i]);

3.点击红叹号测试。

参考技术A 即使用scanf也可以很多方法,严谨点就是循环
for(int i=0;i<20;i++)

printf("please input A[%d]:",i);
scanf("%d",&A[i]);


要么一次输入一串字符,处理获取到的字符串(比较麻烦我就写伪代码了)。
char ch[1024];
printf("please input A[0] to A[19],use ';' as a delimiter:");
scanf("%s",ch);
检查输入的是否是数字
检查是否有不正确的分隔符
检查是否输入了20个数
通过下标查找分隔符,获取对应的数字
通过atoi函数把截取出的数字字符串变为整数
over
参考技术B 连续批量赋值可以用memset
char A[20];
memset(A[2],'A',5);//对数组A第3个元素开始的连续5个元素统一赋值为字符'A'
如果每个需要赋值的元素都不同,就只能一个个赋值了。
参考技术C 即使用scanf也可以很多方法,严谨点就是循环
for(int
i=0;i<20;i++)

printf("please
input
A[%d]:",i);
scanf("%d",&A[i]);

要么一次输入一串字符,处理获取到的字符串(比较麻烦我就写伪代码了)。
char
ch[1024];
printf("please
input
A[0]
to
A[19],use
';'
as
a
delimiter:");
scanf("%s",ch);
检查输入的是否是数字
检查是否有不正确的分隔符
检查是否输入了20个数
通过下标查找分隔符,获取对应的数字
通过atoi函数把截取出的数字字符串变为整数
over
参考技术D int i;num;

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

scanf("%d",num);
A[i]=num;

C语言 怎么把字符数组中的字符赋值给字符变量

第一种写法,等同于char a[10] = "abc";
第一种写法,用一个字符串赋值,实际上保存了4个字节(包含字符串结束符)。
第二种写法,只赋值了三个字节。
1、char c[5];

c[0]=’H’; c[1]=’e’; c[2]=’l’; c[3]=’l’; c[4]=’o’;

2、charc[5]=‘H’,’e’,’l’,’l’,’o’;

3、(1)如果在定义字符数组时不进行初始化,则数组中各元素的值是不可预测的;

(2)如果花括号中提供的初值个数(即字符个数)大于数组长度,则按语法错误处理;

(3)如果花括号中提供的初值个数(即字符个数)小于数组长度,则只将这些字符赋给数组中前面那些元素,其余的元素自动定为空字符(即‘\0’);

4、(如何将字符串赋值给字符数组)

C语言中,将字符串作为字符数组来处理的。C语言规定了一个“字符串结束标志”,以字符’\0’作为标志。为此,再对字符数组初始化的方法补充一种用字符串常量来使字符数组初始化方法:

char c[] = “Hello”;

或 char c[] =“Hello”; 注意:数组c的长度不是5,而是6.

上面的初始化等价于:char c[5]=‘H’,’e’,’l’,’l’,’o’,’\0’;

而不等价于:charc[5]=‘H’,’e’,’l’,’l’,’o’;

5、字符数组的输出

char c[] =“Hello”;

printf(“%s”,c);

6、(如何将字符串赋值给字符数组)

strcpy(字符数组1,字符串2)

eg: char str1[10]=’’, str2=“Hello”;

strcpy(str1,str2);

执行后str1状态为:

H
e
l
l
o
\0
\0
\0
\0
\0
(1)“字符数组1”必须写成数组名形式(如str1),“字符串2”可以是数组名,也可以是字符串常量。eg strcpy(str1, “Hello”);

(2)不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。如下面两句都是不合法的:str1=”Hello”;

str1=str2;

而只能用strcpy函数将一个字符串复制到另一个字符数组中去,赋值语句只能将一个字符赋给一个字符型变量或者字符数组元素。如下面的语句是合法的:

char c[5],c1,c2;

c1=’A’;c2=’B’;

c[0]=’H’; c[1]=’e’; c[2]=’l’; c[3]=’l’; c[4]=’o’;

7、strlen函数是测试字符串实际长度(不包含‘\0’在内)的函数。

char c[10]=”Hello”’

printf(“%d”,strlen(c)); 或者Printf(“%d”,“Hello”); 输出为5
参考技术A char szData[5]='A','b','c','d','\\0';//字符数组
char ch = szData[3];// ch 的值为'd'

追问

可以把字符数组中的所有字符变成一个字符串赋值给ch吗

追答

不能,因为ch是字符,只能存一个字符,存不下字符串,就像就像一个停车位停不了2辆车似的

追问

有没有直接把字符数组里所有字符赋值给一个 字符串常量一样的东西

追答

常量定义之后是不能修改的,包括字符串常量,但是可以把字符串赋值给字符串,strcpy,strncpy

本回答被提问者和网友采纳

以上是关于C语言中如何一次给一个数组变量赋值的主要内容,如果未能解决你的问题,请参考以下文章

C语言关于结构体变量为动态数组赋值问题

C语言 怎么把字符数组中的字符赋值给字符变量

SQL server2005中如何定义变量,如何给变量赋值

c语言赋值是啥?

C语言中怎么把一维数组赋给另外一个一维数组

c语言如何给指针参数赋值为null?