1樓:匿名使用者
1、把字元陣列 0x01, 0x34,0x0e,0x0a,0x00,0xab,0xec 中的十六進位制資料轉為字串 ,字串中的字元依次為'0','1','3','4','0','e','0','a','0','0','a','b','e','c','\0'
2、例子:
char a[7] = ;
char b[15];
char t;
int i;
for(i=0;i<7;i++)
2樓:繁華落盡擱淺
我猜是不是因為 0x00剛好和字串的尾零的ascii值一樣 讀到0x00就說明這個字串到了結尾
3樓:veket的小號
想搞串列埠通訊, 龔建偉的 vc串列埠通訊 書裡講的很明白把字元陣列 0x01, 0x34,0x0e,0x0a,0x00,0xab,0xec 中的十六進位制資料
轉為字串 字串中的字元 依次為
'0','1', '3','4','0','e','0','a','0','0','a','b','e','c','\0'
接受的時候再來個逆轉換
來個例子看看吧
char a[7] = ;
char b[15];
char t;
int i;
for(i=0;i<7;i++)
b[14] = '\0';
關於c語言字串陣列和字元指標相互賦值問題
4樓:匿名使用者
你這個程式錯誤太多,沒崩潰算是運氣好
首先:char filename[50]="c:\\requestdata";這句涉及到指標強轉,會將filename指向"c:
\\requestdata"所在的地址,在對filename進行操作時就有可能崩潰。
其次:char * filearray[56];是指標陣列,儲存了56個char *型指標,而你這樣兒filearray[i] = filename;進行賦值是指標賦值,故filearray中的每個元素都會指向"c:\\requestdata"所在的地址,這也是filearray[0]--filearray[55]的值全部是c:
\requestdata的原因
這個程式需要修改的地方多著,看看指標及字串操作方面的資料吧!
5樓:匿名使用者
請參考下面程式:
#include
#include
void main()
else printf("無法建立檔案%s.\n",filename[i]);}}
6樓:匿名使用者
#include
#include
#include
int main()
return 0;}
7樓:匿名使用者
1、首先確定是字元指標陣列還是字元陣列指標,前者是一個陣列,陣列每個元素都是一個字元指標,後者是一個指向字元陣列的指標。
2、若是指向字元陣列的指標,則很簡單,使用scanf("%s", str);函式獲取輸入的字串,然後使用字串拷貝函式strcpy(stc, dest);將獲取的字串拷貝到指定地址的字元指標陣列中,拷貝過程中注意檢查訪問陣列是否越界,若越界,則需要在字元陣列的最後一個元素賦值為結束符'\0'。
3、若是賦值 字元指標陣列,那麼就是對陣列中的某一個元素指向的字元陣列進行拷貝賦值,其過程與前者相同。
c語言中怎麼字串賦值?
8樓:幻翼高達
需要準備的材料分別有:電腦、c語言編譯器。
1、首先,開啟c語言編譯器,新建一個初始.cpp檔案,例如:test.cpp。
2、在test.cpp檔案中,輸入c語言**:char a[20];strcpy(a, "hello");printf("%s", a);。
3、編譯器執行test.cpp檔案,此時成功將字串賦值給了字串a並列印。
9樓:機鶯買茹雲
一、題目大意為輸出一個已知的字串。
解題思路:
定義一個字元陣列,並用「初始化列表」對其賦以初值
用迴圈逐個輸出此字元陣列中的字元
#include
intmain()
;int
i;for(i=0;i<15;i++)
printf("a=%c",c[i]);
printf("\n");
return0;}
擴充套件資料:
相關知識點:字元陣列的輸入輸出可以有兩種方法。
(1)逐個字元輸入輸出(%c)
(2)整個字串一次輸入輸出(%s)
輸出的字元中不包括結束符』\0』。用%s輸出字串時,printf函式中的輸出項是字元陣列名,不是陣列元素名。如果一個字元陣列中包含多個』\0』,則。遇第一個』\0』時輸出就結束
用scanf函式輸入一個字串,scanf函式中的輸入項c是已定義的字元陣列名,輸入的字串應短於已定義的字元陣列的長度。
(3)在c語言中,是將字串作為字元陣列來處理的,關心的是字串的有效長度而不是字元陣列的長度。為了測定字串的實際長度,c語言規定了字串結束標誌』\0』。
(4)』\0』代表ascii碼為0的字元,從ascii碼錶可以查到,ascii碼為0的字元不是一個可以顯示的字元,而是一個「空操作符」,即它什麼也不做。用它作為字串結束標誌不會產生附加的操作或增加有效字元,只起一個供辨別的標誌
(5)字元的不同寫法
(6)字串結束標誌
10樓:廖星扈飛宇
在c語言中,字串是以字元陣列形式儲存的,並約定以\0作為結束符。所以字串賦值不能直接用=賦值,而是要用專門的函式進行復制,在c語言中,這個函式為strcpy。
1函式名
:strcpy
2形式:
char
*strcpy(char
*dst,
const
char
*src);
3標頭檔案:
string.h
4功能:
將src中的字串複製到dst中,並返回dst的首地址。
5示例:
char
buf[100],
buf1[100];
strcpy(buf,
"test");//
將字串test賦值到buf。
strcpy(buf1,
buf);
//將字串buf的值,賦值給buf1.
11樓:
char x[50]="fbajdhajfgj";
char y="ffhadhjafgh";
char *z="as****g";//不建議用scanf("%s",x);
printf("%s",x);
12樓:匿名使用者
#include "string.h"
........
char str[10];
strcpy(str,"abcd");
13樓:
char string[100],*ptr;
ptr=string;
gets(ptr);
14樓:南坪中學校帥
上面太麻煩了
直接void main()}
可以通過賦值語句將一個字串賦給一個字元陣列嗎?
15樓:匿名使用者
宣告的時候可以,否則的話只能使用strcpy,或者一個成員一個成員的賦值
宣告的時候:
char str[20]="1234567890";
或者:char str[20]=;
strcpy(str,"1234567890");
請問在c語言中如何通過輸入字串為字元指標陣列賦值?
16樓:斯坦恩貝格(北京)電子****
首先確定是字復符指標數制組還是字元陣列指標,前者是一個陣列,陣列每個元素都是一個字元指標,後者是一個指向字元陣列的指標。
若是指向字元陣列的指標,則很簡單,使用scanf("%s", str);函式獲取輸入的字串,然後使用字串拷貝函式strcpy(stc, dest);將獲取的字串拷貝到指定地址的字元指標陣列中,拷貝過程中注意檢查訪問陣列是否越界,若越界,則需要在字元陣列的最後一個元素賦值為結束符'\0'。
若是賦值 字元指標陣列,那麼就是對陣列中的某一個元素指向的字元陣列進行拷貝賦值,其過程與前者相同。
17樓:情義
直接在一個字串裡面按位賦值就可以了
因為你原字串肯定是大於等於新字串的,所以
專定一個變屬量檢查原字串的位置,定另一個變數檢查新字串的位置。那麼第一個變數肯定是大於等於第二個變數的。這樣可以把值從第一個變數的地方賦值到第二個變數的位置即可。
18樓:匿名使用者
有scanf("%s");
char *p[5];
char buff[5][100];
for(int i=0;i<5;i++)
C語言字串,求大佬,C語言字串陣列的問題
在語句for j 0 s j 0 j 中,j 記錄的是串s的字元個數,結束該迴圈時,s j 恰好是 0 在接下來的for迴圈中,第一個j 後,s j 是串s的最後一個字元,而i為0,迴圈體將s 0 與s j 進行交換,第二個j 是正常遞減,以便與i 相對應,交換s i 和s j 沒那個程式之類執行不...
C語言字串
錯誤在註釋中給出了 程式正確執行 include void main else if str i 等號是 是賦值 else if str i 等號是 是賦值 j letter blank gantan printf n d n j 先分析一下你的 for i 0 str i 0 i 你應該改成 fo...
用c語言寫字串逆序輸出,用C語言寫 字串逆序輸出
逆序輸出有很多種,具體的實現方法取決於你題目的要求 1.如果只是要求逆序輸出,那麼可以採用類似的方法 void reverse char s 這種方法在s很長的情況下會一直遞迴到底,不是很好。2.如果需要將字串整個逆序在函式外面輸出,那麼可能希望採用返回字串指標的方式 實現如下 char rever...