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

c語言中如何定義字元串

發布時間: 2022-06-08 08:11:25

c語言中如何定義一個字元串呀

char b[]="張三",張三是字元串不是字元用雙引號一個漢字兩個位元組,你給的那五個位元組是放不下的,那個數組沒有對的地方,想用一維數組的話char a[]={"張三,李四,王二,小明,小花"};這樣做沒什麼實際意義

㈡ c語言如何聲明字元串

C語言中沒有字元串類型的變數。
他只有字元變數類型char,所以字元串用變通的方式來表示。
第一是字元數組來表示字元串。用下面的語句聲明:
char a[10];
C語言中字元數組與字元串的唯一區別是字元串末尾有一個結束符'\0',而字元數組不需要。
如剛才聲明的a[10]是一個含有10個元素的字元數組,它也能存放含有9個元素的字元串。
第二種方式是直接用指針。語句是:
char *a;
用指針聲明的字元數組,大多數功能與字元數組表示字元串相同。但也有以下兩點不同,一是儲存位置不同,用字元數組表示時,字元串是存放在儲存器的變數區域內;而用指針表示的字元數組是存儲在儲存器的常量區內;第二個區別是字元數組的字元串可以更改,而指針表示的字元串不能更改。
有關字元串的賦值方法,如何引用,請參考相關書籍。
有什麼問題請留言。

㈢ c語言定義字元串

定義字元串的方法如下:

#include <stdio.h>

#include <stdlib.h>

int main()

{

//定義字元串的幾種方式

//字元串和字元數組的區別:最後一位是否是空字元

char names1[] = {'j', 'a', 'c', 'k', ''};

char names2[50] = "jack";

char * names3 = "jack";

printf("數組所佔空間大小:%d ", sizeof(names1));

printf("數組所佔空間大小:%d ", sizeof(names2));

//動態輸入

printf("請輸入新名稱: ");

scanf("%s", names2);

printf("%s ", names2);

return 0;

}


(3)c語言中如何定義字元串擴展閱讀

字元串函數的應用

①連接運算 concat(s1,s2,s3…sn) 相當於s1+s2+s3+…+sn.

例:concat(『11』,'aa』)='11aa』;

②求子串。

Copy(s,I,I) 從字元串s中截取第I個字元開始後的長度為l的子串。

例:(『abdag』,2,3)=』bda』

③刪除子串。

過程 Delete(s,I,l) 從字元串s中刪除第I個字元開始後的長度為l的子串。

例:s:=』abcde』;delete(s,2,3);結果s:=』ae』

④插入子串。

過程Insert(s1,s2,I) 把s1插入到s2的第I個位置。

例:s:=abc;insert(『12』,s,2);結果s:=』a12bc』

㈣ C語言如何定義一個常量字元串

定義:用雙引號(「」)括起來的0個或者多個字元組成的序列
存儲:每個字元串尾自動加一個
『\0』
作為字元串結束標志
(1)在C語言中沒有專門的字元串變數,如果想將一個字元串存放在變數中以便保存,必須使用字元數組,即用一個字元型數組來存放一個字元串,數組中每一個元素存放一個字元。例如「char
a[10]="love".」
(2)在程序中,字元串常量會生成一個「指向字元的常量指針」。當一個字元串常量出現於一個表達式中時,表達式所使用的值就是這些字元所存儲的地址,而不是這些字元本身。因此,你可以把字元串常量賦值給一個「指向字元
的指針」,例如:char
*a
=
"123"
;
a
=
"abc";,後者指向這些字元所存儲的地址。但是,你不能把字元串常量賦值給一個字元數組,因為字元串常量的直接值是一個指針,而不是這些字元本身。例如:char
a[5];a[0]
=
"a";就是錯誤的,報錯結果:invalid
conversion
from
'const
char*'
to
'char'。
例如:char
a[10]="love",的意思就是用字元串「love」來初始化字元數組a的內存空間,而數組的首地址也就是「love」字元串的地址。

㈤ c語言怎樣定義字元串

有如下幾種方法:
1、char s1[]="aaa";
2、char s2[]={'b','c'};
3、char *s3="dddd";

㈥ C語言如何定義字元串,其個數和長度均為變化的

C語言
字元串
<=>
字元數組
<=>
指針[字元指針]
你可以用字元指針
char
*
類型定義字元串,這樣你就可以利用malloc和realloc動態分配空間了
這個是我寫的一個程序例子,你可以參考下
功能:將字元指針作為函數的參數編寫一函數
void
InvStr(char
*s,
int
n),將字元串s中的前n個字元倒序排列
#include
#define
INIT_SIZE
20
#define
INCR_SIZE
10
unsigned
int
StrLen(char
*str)
///
求出字元串中含有的字元個數,不包括結束標志
{
///
*
這里我沒有用庫函數求長度,我不知道怎麼用
unsigned
int
i;
for
(i=0;
str[i++]!='\0';);
return
(i
-
1);
}
void
InvStr(char
*s,
int
n)
//逆置字元串s的前n個字元
{
int
i;
//索引變數
char
ch;
//中間變數
if
((int)StrLen(s)
<
n
||
n
<
0)
n
=
StrLen(s);
//如果n不合適,則直接對整個字元串進行逆置
for(i
=
0;
i
<
n/2;
i++){
ch
=
s[i];
s[i]
=
s[n-1-i];
s[n-1-i]
=
ch;
}
}
void
main()
{
char
*
str
=
(char
*)
malloc
(INIT_SIZE
*
sizeof(char));
char
ch;
int
i
=
0;
//字元串當前字元數
int
len
=
INIT_SIZE;
//字元串空間大小
while
(ch
=
getchar())
{
//
循環錄入字元串
if
(ch
==
'@')
{
///如果按回車鍵,則結束
str[i]
=
'\0';
///字元串結束標志
break;
}
if
(i
<
len-1)
{
str[i]
=
ch;
}
else
{
str
=
(char
*)
realloc
(str,
(len
+
INCR_SIZE)
*
sizeof(char));
//增加存儲空間
str[i]
=
ch;
len
+=
INCR_SIZE;
//重新記錄字元串空間
}
i++;
}
scanf("%d",&i);
InvStr(str,i);
printf("%s\n",str);
}