『壹』 如何用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語言中定義字元串:
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"中的字元個數加上結尾的'