❶ 關於c語言中的字元比較!!
1、定義一個char * 類型指針,指向字元串首字元首地址。
2、定義一個數組,數組里存放元素為字元串各個字元+'\0',其中'\0'為碼0值,編譯器會自動在字元串的末尾添加此值。
先看這兩個"變數"分別是存在內存的哪個區域,(後面可知string1為常量)修改代碼如下,列印這兩個「變數」的內存地址,查看運行結果:
查看進程的內存分布情況,(詳情請查看:RobotCode俱樂部:手撕虛擬內存(1)——字元串在虛擬內存中的段位置與/proc虛擬文件系統),string1內存首地址為0x80485a0,string2內存首地址為0bfaebfd8。如下圖,可知這兩種定義方式,一種位於只讀區(0x8048000 < 0x80485a0 < 0x8049000),一種位於Stack區(0xbfacd000 < 0bfaebfd8 < 0xbfaee000)。可知,string1為常量(只讀的,許可權為r),在編譯時就確定了。string2存放在棧上,運行時確定。這也決定了,定義string1的方式適用於定義字元串常量,string2方式適用於字元串變數可能需要被修改的情況。同時需要注意的是,未必定義在函數體里的「變數」都會分布在棧上,如這里的字元串常量,及static修飾的局部變數,他們都是分布在全局靜態區,由編譯器在編譯時決定,而非函數運行時動態分配。另外全局靜態區的變數生命期與整個進程的生命期相同,大於等於函數的生命期。
❷ C語言字元串
若你的編譯器支持中文字元輸出,則你可把輸出語句里的英文字元改用中文。
#include<stdio.h>
int main()
{
char s[80];
int i;
printf("input a string (upper-case latters only) please:\n");
loop: gets(s);
for (i=0;i<strlen(s);i++){
if (s[i]>='A' && s[i]<='Z') continue; //大寫判斷
else {
printf("re_input a string (upper-case latters only) please:\n");
goto loop; //轉向語句
};
};
printf("output reversed:\n");
for (i=strlen(s)-1;i>=0;i--) printf("%c",s[i]);
return 0;
}
❸ c語言單個字元定義
第一個是把一個八進制的值賦值給charc所以輸出%d是58%c是:
第二個是十進制72所以輸出%d是72%c是H
第三個是錯誤的所以輸出%d是28%c這個這里不支持的一個字元
❹ c語言如何聲明字元串
C語言中沒有字元串類型的變數。
他只有字元變數類型char,所以字元串用變通的方式來表示。
第一是字元數組來表示字元串。用下面的語句聲明:
char a[10];
C語言中字元數組與字元串的唯一區別是字元串末尾有一個結束符'\0',而字元數組不需要。
如剛才聲明的a[10]是一個含有10個元素的字元數組,它也能存放含有9個元素的字元串。
第二種方式是直接用指針。語句是:
char *a;
用指針聲明的字元數組,大多數功能與字元數組表示字元串相同。但也有以下兩點不同,一是儲存位置不同,用字元數組表示時,字元串是存放在儲存器的變數區域內;而用指針表示的字元數組是存儲在儲存器的常量區內;第二個區別是字元數組的字元串可以更改,而指針表示的字元串不能更改。
有關字元串的賦值方法,如何引用,請參考相關書籍。
有什麼問題請留言。
❺ C語言怎麼表示字元'\'
沒看過書?
給你補一課
轉義符
C語言的:
轉義字元是C語言中表示字元的一種特殊形式。通常使用轉義字元表示ASCII碼字元集中不可列印的控制字元和特定功能的字元,如用於表示字元常量的單撇號(
'),用於表示字元串常量的雙撇號(
")和反斜杠(
\)等。轉義字元用反斜杠\後面跟一個字元或一個八進制或十六進制數表示。
轉義字元
意義
ASCII碼值(十進制)
\a
響鈴(BEL)
007
\b
退格(BS)
008
\f
換頁(FF)
012
\n
換行(LF)
010
\r
回車(CR)
013
\t
水平製表(HT)
009
\v
垂直製表(VT)
011
\\
反斜杠
092
\?
問號字元
063
\'
單引號字元
039
\"
雙引號字元
034
\0
空字元(NULL)
000
\ddd
任意字元
三位八進制
\xhh
任意字元
二位十六進制
字元常量中使用單引號和反斜杠以及字元常量中使用雙引號和反斜杠時,都必須使用轉義字元表示,即在這些字元前加上反斜杠。
在C程序中使用轉義字元\
d
d
d或者\
x
h
h可以方便靈活地表示任意字元。\
d
d
d為斜杠後面跟三位八進制數,該三位八進制數的值即為對應的八進制A
S
C
I
I碼值。\
x後面跟兩位十六進制數,該兩位十六進制數為對應字元的十六進制A
S
C
I
I碼值。
使用轉義字元時需要注意以下問題:
1)
轉義字元中只能使用小寫字母,每個轉義字元只能看作一個字元。
2)
\v
垂直製表和\f
換頁符對屏幕沒有任何影響,但會影響列印機執行響應操作。
3)
在C程序中,使用不可列印字元時,通常用轉義字元表示
❻ c語言的字元輸入問題
你應該是認為你只輸入了abc3個字元,應該就只會出現3次agin,但是當這3次完了之後你是按的「回車」鍵結束,所以enter被存入緩沖區,程序會將"回車"鍵也就是'\n'給c,所以會有4次agin輸出。
❼ C語言中什麼是字元,什麼是字元串啊,謝謝
C語言中單引號的是字元,雙引號的是字元串。
1、字元指類字形單位或符號,包括字母、數字、運算符號、標點符號和其他符號,以及一些功能性符號。字元在計算機內存放,應規定相應的代表字元的二進制代碼。代碼的選用要與有關外圍設備的規格取得一致。
2、字元串主要用於編程,概念說明、函數解釋、用法詳述見正文,這里補充一點:字元串在存儲上類似字元數組,所以它每一位的單個元素都是可以提取的。
它是編程語言中表示文本的數據類型。在程序設計中,字元串(string)為符號或數值的一個連續序列,如符號串(一串字元)或二進制數字串(一串二進制數字)。
(7)c語言的字元擴展閱讀
C語言字元串的使用
用來存放字元的數組稱為字元數組,例如:
charc[10];
字元數組也可以是二維或多維數組。例如:
charc[5][10];
字元數組也允許在定義時進行初始化,例如:
charc[10]={'c','','p','r','o','g','r','a','m'};//c[9]未賦值,所以為默認值』 』
當對全體元素賦初值時也可以省去長度說明。例如:
charc[]={'c','','p','r','o','g','r','a','m'};
這時c數組的長度自動定為9。
字元數組和普通數組一樣,也是通過下標引用各個元素。
❽ C語言中字元串與字元有什麼區別
字元串就是「abcdefg」,這是字元串
字元是『a』,『b』,這些是字元
字元串是由一串字元組成的
而字元則是單個字母或符號
另外,C語言裡面沒有字元串類型,C++,C#,Java這些才有。
C語言一般使用char型數組或指針來代替字元串
❾ C語言中什麼是字元
C語言中單引號的是字元,雙引號的是字元串。
1、字元指類字形單位或符號,包括字母、數字、運算符號、標點符號和其他符號,以及一些功能性符號。字元在計算機內存放,應規定相應的代表字元的二進制代碼。代碼的選用要與有關外圍設備的規格取得一致。
2、字元串主要用於編程,概念說明、函數解釋、用法詳述見正文,這里補充一點:字元串在存儲上類似字元數組,所以它每一位的單個元素都是可以提取的。
它是編程語言中表示文本的數據類型。在程序設計中,字元串(string)為符號或數值的一個連續序列,如符號串(一串字元)或二進制數字串(一串二進制數字)。
❿ 在c語言中怎樣定義字元串
在c語言中定義字元串:
C語言中用字元型CHAR來表示存儲字元,沒有C++裡面的可以單獨的字元串類型String;
所以C裡面使用字元數組和字元指針來實現字元串功能;
C的字元數組只能在定義時一起賦值,以後只能給單個元素一一賦值;
char string0[10];
char string1[]="prison break";
char string2[100]="michael scofield";
1句表示定義個長度為10的字元串,但未賦值,2句表示定義了一個字元數組string1,並進行初始化,使得其長度自動為13(字元串」prison break"中的字元個數加上結尾的'