當前位置:首頁 » 編程語言 » c語言字元串為啥不能用
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言字元串為啥不能用

發布時間: 2022-08-31 13:09:11

c語言統計字元串個數為什麼不能運行

#include"stdio.h"
intlength(char*s)
{
char*p;
inta=0;
p=s;
while(s[a]!='')
{
a++;

}
returna;
}
main()
{
chars[100];
intb;
printf("請輸入一個字元串:");
gets(s);
b=length(s);
printf("字元串長度為%d ",b);

}

⑵ 1 在計算機二級c語言中 為什麼不能用字元串常量對字元數組名進行整體賦值

語法規定的,字元串常量對編譯器來說只是個地址而已,字元串常量存儲在代碼段,不可被修改,你可以把字元串給一個字元串指針賦值,但是編譯器是不會幫你幫字元串的數據放到數組的空間內,這些要自己完成,或者調用memcpy內存拷貝將整塊的字元串復制過去

⑶ C語言中,字元串為什麼不能直接用等於號賦值給一個變數。 例如 int a;a=「bcd」;

等號當然可以用賦值,賦值就是把等號左邊值的賦給右邊,之所以你寫的不對是因為你的數據類型不對。a是int型,即整數型的,例如你可以讓a=3意思是把3賦給a,但不能讓一個字元串賦給a,所以你那樣賦值肯定會報錯。

c語言沒有專門用於儲存字元串的變數類型,字元串都是被儲存在char類型的數組中。可以把所有的字元串都看成是一個數組。可以這樣聲明chara[4]={'b','c','d',''};意思就是聲明一個char類型的數組,數組中元素的個數是4個,但只能存3個元素,最後一個是空字元。每個元素分別是b,c,d和空字元。

輸出也很容易 用%s表示字元串,printf("%s",a); 請看我的示例圖

⑷ c語言為什麼 字元串不能直接賦值 比如 int a[10]; a = "wenti";

數組名代表首地址,你定義int
a[10],系統會給你開辟空間,當a[10]的生存周期結束,系統就會通過它的地址也就是a來釋放它。a
=
"wenti"實際上是字元串常量"wenti"的首地址賦值給了a,如果可以直接賦值,那麼當a[10]的生存周期結束的時候,系統就找不到它的開辟的空間了,就無法釋放它的空間,所以不能直接賦值!

⑸ c語言中為什麼不能用關系運算符比較兩個字元串

因為關系運算符只能比較兩個數的大小關系
而字元串實際上是以字元串數組的形式存儲,它是數組,而數組是不能直接用關系運算符比較大小的

⑹ C語言里為什麼不能這么寫

因為你是用字元數組表示的字元串,而字元數組也是數組的一種,只要是數組就不能一次性賦值多個數組元素(即字元串)。而strcpy()函數實際上是將指定字元串拆成一個一個的字元,然後循環將每個字元按順序賦值給字元數組的各個元素。

⑺ 快!為什麼c語言中,字元串不能直接用關系運算符

c語言字元串比較不能直接用關系運算符進行正確比較。
可以用
字元串比較函數strcmp
格式:
strcmp(字元數組名1,字元數組名2)
功能:按照ascii碼順序比較兩個數組中的字元串,並由函數返回值返回比較結果。
字元串1=字元串2,返回值=0;
字元串2〉字元串2,返回值〉0;
字元串1〈字元串2,返回值〈0。
本函數也可用於比較兩個字元串常量,或比較數組和字元串常量。

⑻ c語言字元串指針為什麼不能用scanf賦值

C語言是比較低級的語言,沒有字元串概念,只有字元數組,不能自動分配空間,要存放數據,必須預先定義存儲空間的大小!
改為:char
name[100];
一定要常量
scanf("%d%s",&a[i].nu,a[i].name);
就沒問題了!
估計你曾經看過這種定義法:char
*name="abcd";這種也是字元數組初始化固定的空間4個,所以你要記住,初始化一定要預定存放的空間大小!
還有你想達到高級語言的效果,你也可以用
a[i].name
=
(char
*)malloc(100);
/*這里也要常量*/
scanf("%d%s",&a[i].nu,a[i].name);
就沒問題了!

⑼ c語言 字元串為什麼讀取不了

20行後,缺少關閉文件,然後重新打開文件

⑽ C語言高手請賜教:為什麼要輸入10行字元串不能夠輸入呢

s[i]只是一個字元指針變數,你沒有對這個地址後面的一系列內存申請使用,輸入一連串的字元後會出錯的。