Ⅰ c語言關於字元串的操作函數有哪些
string.h頭文件中包含的字元串函數
void*memcpy(void*dest,constvoid*src,size_tn);//將n位元組長的內容從一個內存地址復制到另一個地址;如果兩個地址存在重疊,則最終行為未定義
void*memmove(void*dest,constvoid*src,size_tn);//將n位元組長的內容從一個內存地址復制到另一個地址;與memcpy不同的是它可以正確作用於兩個存在重疊的地址
void*memchr(constvoid*s,charc,size_tn);//在從s開始的n個位元組內查找c第一次出現的地址並返回,若未找到則返回NULL
intmemcmp(constvoid*s1,constvoid*s2,size_tn);//對從兩個內存地址開始的n個字元進行比較
void*memset(void*,int,size_t);//用某種位元組內容覆寫一段內存空間
char*strcat(char*dest,constchar*src);//在字元串dest之後連接上src
char*strncat(char*dest,constchar*src,size_tn);//從src截取n個字元連接在字元串dest之後,返回dest字元串
char*strchr(constchar*str,intch);//從字元串str頭開始查找字元ch首次出現的位置
char*strrchr(constchar*str,intch);//從字元串str尾開始查找字元ch首次出現的位置
intstrcmp(constchar*,constchar*);//基於字典順序比較兩個字元串
intstrncmp(constchar*,constchar*,size_t);//基於字典順序比較兩個字元串,最多比較n個位元組
intstrcoll(constchar*,constchar*);//基於當前區域設置的字元順序比較兩個字元串
char*strcpy(char*str1,constchar*str2);//將str2拷貝給str1
char*strncpy(char*str1,constchar*str2,size_tn);//截取str2的n個字元拷貝給str1
char*strerror(int);//返回錯誤碼對應的解釋字元串,參見errno.h(非線程安全函數)
size_tstrlen(constchar*);//返回一個字元串的長度
size_tstrspn(constchar*s,constchar*strCharSet);//從字元串s的起始處開始,尋找第一個不出現在strCharSet中的字元,返回其位置索引值。換句話說,返回從字元串s的起始位置的完全由strCharSet中的字元構成的子串的最大長度。strspn為stringspan的縮寫。不支持多位元組字元集。
size_tstrcspn(constchar*s,constchar*strCharSet);//從字元串s的起始處開始,尋找第一個出現在strCharSet中的字元,返回其位置索引值。換句話說,返回從字元串s的起始位置的完全由不屬於strCharSet中的字元構成的子串的最大長度。strcspn為stringcomplementspan的縮寫。不支持多位元組字元集。
char*strpbrk(constchar*s,constchar*strCharSet);//在字元串s中查找strCharSet中任意字元第一次出現的位置的指針值。strpbrk為stringpointerbreak縮寫。不支持多位元組字元集。
char*strstr(constchar*haystack,constchar*needle);//在字元串haystack中查找字元串needle第一次出現的位置,heystack的長度必須長於needle
char*strtok(char*strToken,constchar*strDelimit);//將一個字元串strToken依據分界符(delimiter)分隔成一系列字元串。此函數非線程安全,且不可重入;但MSVC實現時使用了thread-localstaticvariable因而是線程安全的單仍然是不可重入,即在單線程中不能對兩個源字元串交替調用該函數來分析token,應當對一個字元串分析完成後再處理別的字元串。
size_tstrxfrm(char*dest,constchar*src,size_tn);//根據當前locale轉換一個字元串為strcmp使用的內部格式
Ⅱ C語言中的字元處理函數
這三個哪個都不是字元處理函數,也不是語句。若在最後都加一個分號,那就是三條語句,也不是函數。這樣的請三都是同一個意思,不過要知道*是char的組成部分,即char *型指針pWord。
Ⅲ C語言中有哪些字元串處理函數
你可以看一下頭文件string.h和stdio.h裡面的相關函數聲明,好多好多。
這里就不一一列出了……比如下面列出的只是其中一部分……
_CRTIMP char * __cdecl strcpy(char *, const char *);
_CRTIMP char * __cdecl strcat(char *, const char *);
_CRTIMP int __cdecl strcmp(const char *, const char *);
_CRTIMP size_t __cdecl strlen(const char *);
_CRTIMP char * __cdecl strchr(const char *, int);
_CRTIMP int __cdecl _strcmpi(const char *, const char *);
_CRTIMP int __cdecl _stricmp(const char *, const char *);
_CRTIMP int __cdecl strcoll(const char *, const char *);
_CRTIMP int __cdecl _stricoll(const char *, const char *);
_CRTIMP int __cdecl _strncoll(const char *, const char *, size_t);
_CRTIMP int __cdecl _strnicoll(const char *, const char *, size_t);
_CRTIMP size_t __cdecl strcspn(const char *, const char *);
_CRTIMP char * __cdecl _strp(const char *);
_CRTIMP char * __cdecl _strerror(const char *);
_CRTIMP char * __cdecl strerror(int);
_CRTIMP char * __cdecl _strlwr(char *);
_CRTIMP char * __cdecl strncat(char *, const char *, size_t);
_CRTIMP int __cdecl strncmp(const char *, const char *, size_t);
_CRTIMP int __cdecl _strnicmp(const char *, const char *, size_t);
_CRTIMP char * __cdecl strncpy(char *, const char *, size_t);
_CRTIMP char * __cdecl _strnset(char *, int, size_t);
_CRTIMP char * __cdecl strpbrk(const char *, const char *);
_CRTIMP char * __cdecl strrchr(const char *, int);
_CRTIMP char * __cdecl _strrev(char *);
_CRTIMP size_t __cdecl strspn(const char *, const char *);
_CRTIMP char * __cdecl strstr(const char *, const char *);
_CRTIMP char * __cdecl strtok(char *, const char *);
_CRTIMP char * __cdecl _strupr(char *);
_CRTIMP size_t __cdecl strxfrm (char *, const char *, size_t);
Ⅳ C語言字元串操作函數
strupr:將字元串s轉換為大寫形式
strlwr:將字元串s轉換為小寫形式
以上兩個沒說的!
●strlen功能:返回字元串s的長度,不包括串結束字元'\0',也不是數組長度;
如下幾種方式:
1)strlen("china") 結果為5
2)char s[20]="china";
strlen(s) 結果為5
3)char *s="china";
strlen(s) 結果為5
●strcpy(字元串1,字元串2): 把字元串2中的所有內容,復制到字元串1中,不管字元串1中原先存放的是什麼,全部被覆蓋(要注意的是s1的長度要足夠容納s2)
●strcat(字元串1,字元串2): 將兩個字元串連接,形成一個新的字元串(要注意的是s1的長度要足夠容納s1和s2,只能字元串和字元串連接,不能直接和整型,float,double等連接,不過可以加上雙引號" ",使之變成字元型)
如下:
#include<stdio.h>
#include<string.h>
void main()
{
char a[100];
char b[100];
strcpy(a,"我愛-");
strcpy(b,"-美女");
strcat(a,b);
puts(a); /*輸出:我愛--美女*/
}
●strcmp比較字元串的大小,但不是比較s1和s2的長度,而是比較對應字元串中的ASCII碼的大小
如下:
char s1[10]="china";
char s2[10]="chz";
strcmp(s1,s2); //返回一個負數,即s1<s2。雖然s1的長度大於s2,但比較的是ASCII碼
Ⅳ C語言字元串處理函數
其實那些字元串函數並不復雜。任何一個的實現都不出五行代碼:
char *strcpy( char *dst, const char *src ) {
char *destination = dst;
while( *dst++ = *src++ )
;
return destination;
}
char *strcat( char *dst, const char *src ) {
char *destination = dst;
while( *dst++ )
;
strcpy( --dst, src );
return destination;
}
int strcmp( const char *s1, const char *s2 ) {
for( ; *s1 == *s2; s1++, s2++ )
if( *s1 == '\0' ) return 0;
return *s1 - *s2;
}
unsigned strlen( const char *s ) {
const char *t = s;
while( *t++ )
;
return --t - s;
}
Ⅵ c語言考試,問常用字元串操作函數有那幾個
1.puts(字元數組)
輸出
2.gets(字元數組)
輸入
3.strcat(字元數組1,字元數組2)
字元串2接到字元串1的後面
4.strcpy和strncpy(字元數組1,字元串2,m)
將字元串2的前m個字元拷到str1中,最後加'\0'
5.strcmp(字元串1,字元串2)
兩字元串比較
6.strlen(字元數組)
字元串的實際長度(不包括'\0')
7.strlwr(字元串)
大寫轉換為小寫
8.strupr(字元串)
小寫轉換為大寫
Ⅶ c語言中對字元串截取的函數!
根據單個分隔字元用split截取
string st="GT123_1";
string[] sArray=st.split("_");
即可得到sArray[0]="GT123",sArray[1]="1";
2.利用多個字元來分隔字元串
tring str = "GTAZB_JiangjBen_123";
string[] sArray = str.Split(new char[2] { 'j', '_' });
foreach(string e in sArray)
{
Console.WriteLine(e);
}
得到sArray[0]="GTAZB",sArray[1]="Jiang",sArray[2]="Ben",sArray[3]="123";
3根據字元串或字元串組來截取字元串
string str = "GTAZB_JiangjBen_123";
string[] sArray = str.Split( new string[]{"Ji","jB"}, StringSplitOptions.RemoveEmptyEntries);
foreach(string e in sArray)
{
Console.WriteLine(e);
}
得到sArray[0]="GTAZB_",sArray[1]="ang",sArray[2]="en_123";
4提取字元串中的第i個字元開始的長度為j的字元串;
string str = "GTAZB_JiangjBen_123";
int start=3,length=8;
Console.WriteLine(str.Substring(start-1, length));
Ⅷ c語言字元串處理函數有哪些
1、puts函數——輸出字元串的函數
一般的形式為puts(字元串組)
作用:將一個字元串輸出到終端。如,char一個string,並賦予初值。調用puts(string);進行字元串的輸出。
2、gets函數——輸入字元串的函數
一般的形式:gets(字元數組)
作用:從終端輸入一個字元串到字元數組,並且得到一個函數值成為字元數組的起始地址。
gets(str);
鍵盤輸入,,,,你懂得。
注意:puts和gets函數只能輸出或者輸入一個字元串。
3、strcat函數——字元串連接函數
一般的形式:strcat(字元數組1,字元數組2);
作用:把兩個字元串數組中字元串連接起來,把字元串2連接到字元串1的後面。
說明:字元數組1必須足夠大,以便容納連接後的新字元串。
4、strcpy/strncpy函數——字元串復制函數
一般形式:strcpy(字元數組1,字元串2);
作用:將字元串2復制到字元數組1中去。
如:char str1[10],str2[]="DongTeng";
strcpy(str1,str2);
執行後的結果為:你懂得
注意:
1. 不能用賦值語句直接將一個字元串常量或者字元數組直接給一個字元數組。
2. 用strncpy可以賦值指定的位置的字元。strncpy(str1,str2,3);將str2中的第3個字元復制到str1中。
5、strcmp函數——字元串比較函數
一般形式:strcmp(字元串1,字元串2);
作用:用來比較兩個字元串的差異。具有不同的比較規則。
6、strlen函數——測字元串長度的函數
一般形式:strlen(字元數組);
如:char str[10]="DongTeng";
printf("%d",strlen(str));
得到的結果是:5
7、strlwr函數——轉換為小寫的函數
一般形式:strlwr(字元串);
8、strupr函數——轉換為大寫的函數
一般形式:strupr(字元串)。
Ⅸ C語言中用函數處理字元串問題
你聲明的string是一個只能被讀取但不能被修改的字元串常量,你的程序沒有錯誤,但你應該這樣改動,char string[100];這樣的話,你的Clean就沒有問題了,不過建議把空格替換成'\0',這樣能避免很多問題。
返回字元串的函數的思路:
1,在函數內建立一個字元數組Temp
2,按位為字元數組Temp賦值
3,返回Temp的首地址
4,在主函數中將Temp的值復制給一個數組。