1. c语言切割字符串存入数组
char b[]={0xaa,0xbb,0xcc,0xdd,0xee,0xff}; 首先你要知道你这么声明一个字符串,0xaa而不是“0xaa”那么b中的元素就会自动根据十六进制的值转换成字符,就很有可能乱码了。
要么你想得到的是char b[][6]={"0xaa","0xbb","0xcc","0xdd","0xee","0xff"};
要么就是int b[]={0xaa,0xbb,0xcc,0xdd,0xee,0xff}; 你上面想得到的字符数组是不对的。
如果是第一个,那很简单
写个循环,分割之后加上0x就行了。
如果想得到的是第二个
那么就用第一个的结果中的字符串元素转换成int就可以了。
2. C语言中的数组什么意思
所谓数组,是有序的元素序列。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式。这些无序排列的同类数据元素的集合称为数组。
比如油烟机的风扇转速会和工作的模式之间有一定的关系,那么我们就可以把它的工作模式和一维数组的下标对应起来,我们将具体的转速放在数组中,这样的话就非常方便我们在日后查询。
再比如说家中的冷暖灯光控制这方面,色温灯里会有两个灯珠,分别对应的是冷光和暖光,选择不同的模式灯光的颜色就不同,我们就可以将这两种灯光的亮度pwm值事先放在二维数组中,以便调用调光。
在程序中合理地使用数组,会使程序的结构比较整齐,而且可以把较为复杂的运算,转化成简单的数组来表示。
(2)c语言切数组扩展阅读:
一、使用规则:
1、可以只给部分元素赋初值。当{ }中值的个数少于元素个数时,只给前面部分元素赋值。
2、只能给元素逐个赋值,不能给数组整体赋值。
(请注意:在C、C#语言中是这样,但并非在所有涉及数组的地方都这样,数据库是从1开始。)
3、若不给可初始化的数组赋初值,则全部元素均为0值。
4、假如给全部元素赋值,则在数组说明中, 可以不给出数组元素的个数。
动态赋值可以在程序执行过程中,对数组作动态赋值。这时可用循环语句配合scanf函数逐个对数组元素赋值。
二、表示方法:
数组元素是组成数组的基本单元。
数组元素也是一种变量, 其标识方法为数组名后跟一个下标。下标表示了元素在数组中的顺序号。数组元素的一般形式为:数组名[下标] 其中的下标只能为整型常量或整型表达式。
如为小数时,C编译将自动取整。例如,a[5],a[i+j],a[i++]都是合法的数组元素。数组元素通常也称为下标变量。必须先定义数组, 才能使用下标变量。在C语言中只能逐个地使用下标变量, 而不能一次引用整个数组。
3. C语言编程怎么将截断一个数组的一部分
用指针就可以方便的实现,思路给了自己实现,由于您没有给具体的输入格式和输出格式,我也不方便写代码。
4. C语言 数组分割数问题
你只能输入字符,不能输入字符串。因为C没有字符串,C的字符串就是一堆字符后面跟着一个'\0',而scanf是没办法在后面加上'\0'的,所以得不到想要的结果。如果想得到结果只能用while(c=getchar()){ }然后在结束的时候自己加'\0'
再有就是i和n没有初始化的问题了。不过即使赋了值,也由于上面的原因,能够运行,但得不到你想要的结果。
5. c语言编程题:将一个数组从二分之一处切开,然后将中间的元素向两头搬移,同时两头元素向中间移,移4次
#include <stdio.h>
#define N 12
void main()
{
int i, temp;
int times = 0;
int arr[N] = {1, 2, 3, 4, 5, 88, 99, 6, 7, 8, 9, 10};
do
{
temp = arr[(N-2)/2];
for(i=(N-2)/2;i>0;i--)
arr[i] = arr[i-1];
arr[0] = temp;
temp = arr[N/2];
for(i=N/2;i<N-1;i++)
arr[i] = arr[i+1];
arr[N-1] = temp;
times++;
}while(times <= 3);
printf("移动4次后的数组是:\n");
for(i=0;i<N;i++)
printf("%d ",arr[i]);
}
6. C语言编程怎么将截断一个数组的一部分
截断一个数组的一部分相当于取得一个数组的某一个子集数组。
如果是字符数组,可以使用strncpy函数,根据需要截取需要部分。
strncpy 是 C语言的库函数之一,来自 C语言标准库,定义于 string.h,char *strncpy(char *dest, char *src, int n),把src所指字符串的前n个字节复制到dest所指的数组中,并返回指向dest的指针。
如果是普通数组,使用循环语句,将需要的部分一一赋值即可。
例如:
#include<stdio.h>
inta[10]={0,1,2,3,4,5,6,7,8,9};//源数组a
intb[10],i;//子集数组b
intmain(){
for(i=5;i<10;i++)b[i-5]=a[i];//获得a数组中第6个到第10个数,储存到b当中
return0;
}
7. c语言中数组有几种
我们常见的C需要类型数组有:
char:只允许输入字符,
int:是整型变量,输入整数,范围不大,在-32767到32767,
float:输入可以使小数也可以输入整数,在不确定的情况下,就用float,范围还是比较的大,
double:如果说float是四个字节的话,大伯是八个字节。范围比float大好多。
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。 尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性。
以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。 二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。
目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
8. C语言怎么操作数组
这是个动态分配的问题可以用
realloc()函数真的很好用的,这里我也不多说了,
给个例子看看,这个是我以前在网络上看到的。很久了都忘了你自己看看,看不懂再说
#include"stdio.h"
#include"stdlib.h"
main()
{int i=0;
char *c,x;
c=malloc(sizeof(char));
while((x=getchar())!='\n')
{i++;
c=realloc(c,i*sizeof(char));
c=x;
}
for(;i>0;i--)
printf("%c",(c--));
printf("\n");
system("pause");
}这是模拟栈的作用
需要用。。。
9. C语言有没有把字符串拆分为数组的函数
直接用简单的C++
#include<iostream>
#include<string>
#include<vector>
usingnamespacestd;
//把字符串s按照字符串c进行切分得到vector_v
vector<string>split(conststring&s,conststring&c){
vector<string>v;
intpos1=0,pos2;
while((pos2=s.find(c,pos1))!=-1){
v.push_back(s.substr(pos1,pos2-pos1));
pos1=pos2+c.size();
}
if(pos1!=s.length())
v.push_back(s.substr(pos1));
returnv;
}
intmain()
{
stringinput="张三$|男$|济南$|大专学历$|";
vector<string>myArray=split(input,"$|");
for(inti=0;i<myArray.size();i++){
cout<<myArray[i]<<endl;
}
}
/*
张三
男
济南
大专学历
*/
10. C语言编程怎么将一个数组截断成几个数组
首先,你不知道这个数组可能包含了几个子数组,所以你无法事先申请合适数目的数组来保存数据。
所以必须先动态的申请一段内存,然后挨个扫描现有的数组中的元素,如果不是0,就将它插入到动态数组中去。如果是0的话,再动态的申请一段内存(也就是动态数组),然后再继续扫描,如此往复,直到扫描结束。
你还可以用一个数组将你所申请的内存指针保存起来,并对申请次数计数,这样就可以继续对这些数组进行处理了。