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

c語言字元串

發布時間: 2022-01-15 04:26:23

『壹』 如何用c語言來表達一個字元串

1)在串值後面加一個不計入長度的結束標記字元,比如'\0'來表示串值的終結

初始化一個字元串的方法如下,在最後添加'\0'

char str[] = {'I','a','m','h','a','p','p','y','\0'};
也可以直接使用字元串常量初始化字元數組(系統自動加上'\0'),這種方法符合人們的習慣。

char str[] = "I am happy";
或者
char str[] = {"I am happy"};
注意:不能使用下面的賦值方式:
char str[20];
str = "I am happy";
但可以用字元指針指向這個字元串:
char *str;
str = "I love China";

(2)將實際串長度值保存在數組0的下標下

#define MAXSIZE 20 //數組的長度
typdef char String[MAXSIZE+1];
初始化字元串的方法:

String t;
StrAssign(t,"I am happy");
int StrAssign(String T,char *chars)
{
T[0] = strlen(chars); //下標為0存放數組長度
for(i=1;i<=strlen(chars);i++) //下標位置從1開始存放數據
{
T[i] = *(chars+i-1);
}
return 1;
}
(3)使用結構體類型(自定義類型)

#define MAXSIZE 20
typedef struct{
char ch[MAXSIZE];
int len;
}String;
其中:MAXSIZE表示串的最大長度,ch是存儲字元串的一維數組,len是字元串的長度
初始化函數示例:

String t;
StrAssign(&t,"I am happy");
int StrAssign(String *t,char *chars)
{
int i;
if(strlen(chars)>MAXSIZE+1) //字元串的長度大於數組的長度,操作失敗,返回0
return 0;
for(i=0;i<strlen(chars);i++)
{
t->ch[i] = *(chars+i);
}
t->len = strlen(chars); //數組的長度
return 1; //返回1,操作成功
}
說明:這里的StrAssign函數的參數t使用的是指針,是因為結構體變數做做形參,用法和普通變數一樣屬於值傳遞方式,在子函數中要給t賦值,所以輸入的是t的指針。與之對比的是(2)子函數中T是數組,傳入的是數組的首地址(改變形參也就改變了實參)。

————————————————
版權聲明:本文為CSDN博主「chenkaibsw」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/chenkaibsw/article/details/78957944

『貳』 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語言字元串類

#include<stdio.h>
#include<string.h>
intmain()
{
chara[10][100];
intscore[10],i,j,temp,stemp;
for(i=0;temp;i++)
{
gets(a[i]);
temp=strlen(a[i]);
}
for(i=0;strlen(a[i]);i++)
{
score[i]=0;
for(j=0;j<strlen(a[i]);j++)
{
if(a[i][j]>='a'&&a[i][j]<='z')
stemp=a[i][j]-96;
if(a[i][j]>='A'&&a[i][j]<='Z')
stemp=a[i][j]-64;
score[i]+=stemp;
}
}
for(i=0;strlen(a[i]);i++)
printf("%d ",score[i]);
return0;
}


『肆』 c語言中字元串是%什麼

如果用在scanf或printf中的格式字元串中:
%d是代表整型數據,%f代表float型數據,%c代表字元型數據,%s代表字元串
具體可以網路scanf或printf

『伍』 c語言如何表示字元串

C語言中並沒有字元串這個類型,表示字元串時,需要使用字元數組,或字元指針。即char型數組,或char *指針。

char str[100] = "hello world";
就是一種字元串的表示方法。

另外,在C語言中,約定用字元數組表示字元串時,以'\0'為字元串結尾,即ascii碼0。

『陸』 c語言字元串代碼

to Earthg:
scanf不能實現含多個子字元串的字元串的讀取。

to xbvl3vosrs:
C++中也沒有大寫的String類,而且C++標准庫STL中的小寫string類中也沒有Split方法。

---------------------

C語言提供庫函數strtok,可以實現字元串分割。

給出MSDN範例代碼如下,注釋已經適當添加和修改:

/* STRTOK.C: In this program, a loop uses strtok
* to print all the tokens (separated by commas
* or blanks) in the string named "string".
*/

#include <string.h>
#include <stdio.h>

char string[] = "A string\tof ,,tokens\nand some more tokens";
char seps[] = " ,\t\n";
char *token;

void main( void )
{
printf( "%s\n\nTokens:\n", string );
/* Establish string and get the first token: */
token = strtok( string, seps ); // 這里獲得第一個子串
while( token != NULL )
{
/* While there are tokens in "string" */
printf( " %s\n", token ); // 如果你要存放每個子串進入二維數組,那麼這一句就改成字元串賦值
// 使用strcpy函數。
/* Get next token: */
token = strtok( NULL, seps ); // 這里從第二個子串開始依次獲得每一個子串
}
}

-----------------------------------

『柒』 在c語言中怎樣定義字元串

在c語言中定義字元串:

  1. C語言中用字元型CHAR來表示存儲字元,沒有C++裡面的可以單獨的字元串類型String;

  2. 所以C裡面使用字元數組和字元指針來實現字元串功能;

  3. C的字元數組只能在定義時一起賦值,以後只能給單個元素一一賦值;

  4. char string0[10];

  5. char string1[]="prison break";

  6. char string2[100]="michael scofield";

  7. 1句表示定義個長度為10的字元串,但未賦值,2句表示定義了一個字元數組string1,並進行初始化,使得其長度自動為13(字元串」prison break"中的字元個數加上結尾的''),3句定義了一個有100個元素的字元數組string2,並初始化了17個元素("michael scofield";加上結尾的'')。

『捌』 C語言中如何定義字元串

可以用數組或指針

數組:

char s[80]="abcd";或者char s[80]={"abcd"}; /*說明:自動加字元串結束標志:*/

char s[80]={"a","b","c","d",""};

指針:

char *s;char*s="abcd";

『玖』 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;

}


(9)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語言如何聲明字元串

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