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的話,再動態的申請一段內存(也就是動態數組),然後再繼續掃描,如此往復,直到掃描結束。
你還可以用一個數組將你所申請的內存指針保存起來,並對申請次數計數,這樣就可以繼續對這些數組進行處理了。