當前位置:首頁 » 編程語言 » c語言字元函數

c語言字元函數

發布時間: 2023-03-10 06:54:52

A. 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使用的內部格式

B. 在C語言中單個字元輸入/輸出函數是什麼意思

putchar 函數是字元輸出函數, 其功能是在顯示器上輸出單個字元。其一般形式是putchar(字元變數),對控制字元則執行控制功能,不在屏幕上顯示。

fprintf()、fscanf()、fgets()和fputs()

舉例

fprintf(fp,"%s",words);

fscanf(fp,"%s",words);

fgets(buf,MAX,fp);//buf 是一個char數組的名稱,MAX是字元串的最大長度,fp是一個FILE指針。

fputs(buf,fp);//buf是一個char數組的名稱,fp是一個FILE指針。

(2)c語言字元函數擴展閱讀:

傳遞函數概念的適用范圍限於線性常微分方程系統.當然,在這類系統的分析和設計中,傳遞函數方法的應用是很廣泛的。下面是有關傳遞函數的一些重要說明(下列各項說明中涉及的均為線性常微分方程描述的系統):

1、系統的傳遞函數是一種數學模型,它表示聯系輸出變數與輸入變數的微分方程的一種運算方法;

2、傳遞函數是系統本身的一種屬性,它與輸入量或驅動函數的大小和性質無關;

3、傳遞函數包含聯系輸入量與輸出量所必需的單位,但是它不提供有關系統物理結構的任何信息(許多物理上完全不同的系統,可以具有相同的傳遞函數,稱之為相似系統);

C. c語言字元長度函數

正確的答案是5,題目選項有誤。

首先strlen()函數返回的長度是不包含'',

第一個字元為:a

第二個字元為:b

第三個字元為: (換行符)

第四個字元為:2

第五個字元為: (\轉義為)

所以答案為5。

(下圖為實際代碼演示)

擴展內容:

strlen()函數(C語言函數):

strlen所作的僅僅是一個計數器的工作,它從內存的某個位置(可以是字元串開頭,中間某個位置,甚至是某個不確定的內存區域)開始掃描,直到碰到第一個字元串結束符''為止,然後返回計數器值(長度不包含'')。

D. C語言中對字元串進行操作的標准庫函數有哪些

1)字元串操作
strcpy(p, p1) 復制字元串
strncpy(p, p1, n) 復制指定長度字元串
strcat(p, p1) 附加字元串
strncat(p, p1, n) 附加指定長度字元串
strlen(p) 取字元串長度
strcmp(p, p1) 比較字元串
strcasecmp忽略大小寫比較字元串
strncmp(p, p1, n) 比較指定長度字元串
strchr(p, c) 在字元串中查找指定字元
strrchr(p, c) 在字元串中反向查找
strstr(p, p1) 查找字元串
strpbrk(p, p1) 以目標字元串的所有字元作為集合,在當前字元串查找該集合的任一元素
strspn(p, p1) 以目標字元串的所有字元作為集合,在當前字元串查找不屬於該集合的任一元素的偏移
strcspn(p, p1) 以目標字元串的所有字元作為集合,在當前字元串查找屬於該集合的任一元素的偏移
* 具有指定長度的字元串處理函數在已處理的字元串之後填補零結尾符

2)字元串到數值類型的轉換
strtod(p, ppend) 從字元串 p 中轉換 double 類型數值,並將後續的字元串指針存儲到 ppend 指向的 char* 類型存儲。
strtol(p, ppend, base) 從字元串 p 中轉換 long 類型整型數值,base 顯式設置轉換的整型進制,設置為 0 以根據特定格式判斷所用進制,0x, 0X 前綴以解釋為十六進制格式整型,0 前綴以解釋為八進制格式整型
atoi(p) 字元串轉換到 int 整型
atof(p) 字元串轉換到 double 符點數
atol(p) 字元串轉換到 long 整型

3)字元檢查
isalpha() 檢查是否為字母字元
isupper() 檢查是否為大寫字母字元
islower() 檢查是否為小寫字母字元
isdigit() 檢查是否為數字
isxdigit() 檢查是否為十六進制數字表示的有效字元
isspace() 檢查是否為空格類型字元
iscntrl() 檢查是否為控制字元
ispunct() 檢查是否為標點符號
isalnum() 檢查是否為字母和數字
isprint() 檢查是否是可列印字元
isgraph() 檢查是否是圖形字元,等效於 isalnum() | ispunct()

E. C語言字元串處理的庫函數有哪些

函數名: strrchr
功 能: 在串中查找指定字元的最後一個出現
用 法: char *strrchr(char *str, char c);
舉例:
[cpp] view plain
char fullname="./lib/lib1.so";
char *ptr;
ptr = strrchr(fullname,'/');
printf("filename is %s",++ptr);
//運行結果:filename is lib1.so

函數名: strchr
功 能: 在串中查找指定字元的第一個出現
用 法: char *strchr(char *str, char c);
舉例:
[cpp] view plain
char fullname="./lib/lib1.so";
char *ptr;
ptr = strrchr(fullname,'.');
printf("after strchr() is %s",++ptr);
//運行結果:after strchr() is /lib/lib1.so

函數名: strtok
功 能: 在串中查找指定字元的第一個出現
用 法: char *strtok(char *s, char *delim);
說明:
1.strtok函數的實質上的處理是,strtok在s中查找包含在delim中的字元並用NULL(』/0′)來替換,直到找遍整個字元串。這句話有兩層含義:(1)每次調用strtok函數只能獲得一個分割單位。(2)要獲得所有的分割單元必須反復調用strtok函數。
2.strtok函數以後的調用時的需用NULL來替換s.
3.形參s(要分割的字元串)對應的變數應用char s[]=」….」形式,而不能用char *s=」….」形式。
舉例:
[cpp] view plain
void main()
{
char buf[]=」Golden Global View」;
char* token = strtok( buf, 」 「);
while( token != NULL )
{
printf( 」%s 「, token );
token = strtok( NULL, 」 「);
}
return 0;
}
/*其結果為:

Golden
Global
View
*/

函數名:strncpy
功能:把src所指由NULL結束的字元串的前n個位元組復制到dest所指的數組中
用法:char *strncpy(char *dest, char *src, int n);
說明:
如果src的前n個位元組不含NULL字元,則結果不會以NULL字元結束。
如果src的長度小於n個位元組,則以NULL填充dest直到復制完n個位元組。
src和dest所指內存區域不可以重疊且dest必須有足夠的空間來容納src的字元串。
返回指向dest的指針。
舉例:
[c-sharp] view plain
#include <syslib.h>
#include <string.h>

main()
{
char buf[4];
char *s="abcdefg";

strncpy(buf,s,4);
printf("%s/n",buf);
return 0;
}
/*運行結果:
abcd
*/

函數名: stpcpy
功 能: 拷貝一個字元串到另一個
用 法: char *stpcpy(char *destin, char *source);
舉例:
[cpp] view plain
#include <stdio.h>
#include <string.h>
int main(void)
{
char string[10];
char *str1 = "abcdefghi";
stpcpy(string, str1);
printf("%s/n", string);
return 0;
}
/*運行結果
abcdefghi
*/

函數名: strcat
功 能: 字元串拼接函數
用 法: char *strcat(char *destin, char *source);
舉例:
[cpp] view plain
#include <string.h>
#include <stdio.h>
int main(void)
{
char destination[25];
char *blank = " ", *c = "C++", *Borland = "Borland";
strcpy(destination, Borland);
strcat(destination, blank);
strcat(destination, c);
printf("%s/n", destination);
return 0;
}
/*運行結果:
Borland C++
*/

函數名: strcmp
功 能: 串比較
用 法: int strcmp(char *str1, char *str2);
看Asic碼,str1>str2,返回值 > 0;兩串相等,返回0
舉例:
[cpp] view plain
#include <string.h>
#include <stdio.h>
int main(void)
{
char *buf1 = "aaa", *buf2 = "bbb";
int ptr;
ptr = strcmp(buf2, buf1);
if (ptr > 0)
printf("buffer 2 is greater than buffer 1/n");
else if(ptr < 0)
printf("buffer 2 is less than buffer 1/n");
else
printf("buffer 2 is equal with buffer 1/n");
return 0;
}
/*運行結果:
buffer 2 is greater than buffer 1
*/

函數名: strncmpi
功 能: 將一個串中的一部分與另一個串比較, 不管大小寫
用 法: int strncmpi(char *str1, char *str2, unsigned maxlen);
舉例:
[cpp] view plain
#include <string.h>
#include <stdio.h>
int main(void)
{
char *buf1 = "BBB", *buf2 = "bbb";
int ptr;
ptr = strcmpi(buf2, buf1);
if (ptr > 0)
printf("buffer 2 is greater than buffer 1/n");
if (ptr < 0)
printf("buffer 2 is less than buffer 1/n");
if (ptr == 0)
printf("buffer 2 equals buffer 1/n");
return 0;
}

函數名: strcspn
功 能: 在串中查找第一個給定字元集內容的段
用 法: int strcspn(char *str1, char *str2);
舉例:
[cpp] view plain
#include <stdio.h>
#include <string.h>
#include <alloc.h>
int main(void)
{
char *string1 = "1234567890";
char *string2 = "747DC8";
int length;
length = strcspn(string1, string2);
printf("Character where strings intersect is at position %d/n", length);
return 0;
}

函數名: strp
功 能: 將串拷貝到新建的位置處
用 法: char *strp(char *str);
舉例:
[cpp] view plain
#include <stdio.h>
#include <string.h>
#include <alloc.h>
int main(void)
{
char *p_str, *string = "abcde";
p_str = strp(string);
printf("%s/n", p_str);
free(p_str);
return 0;
}

函數名: stricmp
功 能: 以大小寫不敏感方式比較兩個串
用 法: int stricmp(char *str1, char *str2);
舉例:
[cpp] view plain
#include <string.h>
#include <stdio.h>
int main(void)
{
char *buf1 = "BBB", *buf2 = "bbb";
int ptr;
ptr = stricmp(buf2, buf1);
if (ptr > 0)
printf("buffer 2 is greater than buffer 1/n");
if (ptr < 0)
printf("buffer 2 is less than buffer 1/n");
if (ptr == 0)
printf("buffer 2 equals buffer 1/n");
return 0;
}

函數名: strerror
功 能: 返回指向錯誤信息字元串的指針
用 法: char *strerror(int errnum);
舉例:
[cpp] view plain
#include <stdio.h>
#include <errno.h>
int main(void)
{
char *buffer;
buffer = strerror(errno);
printf("Error: %s/n", buffer);
return 0;
}

函數名: strncmp
功 能: 串比較
用 法: int strncmp(char *str1, char *str2, int maxlen);
舉例:
[cpp] view plain
#include <string.h>
#include <stdio.h>
int main(void)
{
char *buf1 = "aaabbb", *buf2 = "bbbccc", *buf3 = "ccc";
int ptr;
ptr = strncmp(buf2,buf1,3);
if (ptr > 0)
printf("buffer 2 is greater than buffer 1/n");
else
printf("buffer 2 is less than buffer 1/n");
ptr = strncmp(buf2,buf3,3);
if (ptr > 0)
printf("buffer 2 is greater than buffer 3/n");
else
printf("buffer 2 is less than buffer 3/n");
return(0);
}

函數名: strncmpi
功 能: 把串中的一部分與另一串中的一部分比較, 不管大小寫
用 法: int strncmpi(char *str1, char *str2, int len);
舉例:
[cpp] view plain
#include <string.h>
#include <stdio.h>
int main(void)
{
char *buf1 = "BBBccc", *buf2 = "bbbccc";
int ptr;
ptr = strncmpi(buf2,buf1,3);
if (ptr > 0)
printf("buffer 2 is greater than buffer 1/n");
if (ptr < 0)
printf("buffer 2 is less than buffer 1/n");
if (ptr == 0)
printf("buffer 2 equals buffer 1/n");
return 0;
}

函數名: strnset
功 能: 將一個串中的所有字元都設為指定字元
用 法: char *strnset(char *str, char ch, unsigned n);
舉例:
[cpp] view plain
#include <stdio.h>
#include <string.h>
int main(void)
{
char *string = "abcdefghijklmnopqrstuvwxyz";
char letter = 'x';
printf("string before strnset: %s/n", string);
strnset(string, letter, 13);
printf("string after strnset: %s/n", string);
return 0;
}

函數名: strpbrk
功 能: 在串中查找給定字元集中的字元
用 法: char *strpbrk(char *str1, char *str2);
舉例:
[cpp] view plain
#include <stdio.h>
#include <string.h>
int main(void)
{
char *string1 = "abcdefghijklmnopqrstuvwxyz";
char *string2 = "onm";
char *ptr;
ptr = strpbrk(string1, string2);
if (ptr)
printf("strpbrk found first character: %c/n", *ptr);
else
printf("strpbrk didn't find character in set/n");
return 0;
}

函數名: strrev
功 能: 串倒轉
用 法: char *strrev(char *str);
舉例:
[cpp] view plain
#include <string.h>
#include <stdio.h>
int main(void)
{
char *forward = "string";
printf("Before strrev(): %s/n", forward);
strrev(forward);
printf("After strrev(): %s/n", forward);
return 0;
}
/*運行結果:
Before strrev(): string
After strrev(): gnirts
*/

函數名: strstr
功 能: 在串中查找指定字元串的第一次出現
用 法: char *strstr(char *str1, char *str2);
舉例:
[cpp] view plain
#include <stdio.h>
#include <string.h>
int main(void)
{
char *str1 = "Borland International", *str2 = "nation", *ptr;
ptr = strstr(str1, str2);
printf("The substring is: %s/n", ptr);
return 0;
}

函數名: strtod
功 能: 將字元串轉換為double型值
用 法: double strtod(char *str, char **endptr);
舉例:
[cpp] view plain
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char input[80], *endptr;
double value;
printf("Enter a floating point number:");
gets(input);
value = strtod(input, &endptr);
printf("The string is %s the number is %lf/n", input, value);
return 0;
}

函數名: strtol
功 能: 將串轉換為長整數
用 法: long strtol(char *str, char **endptr, int base);
舉例:
[cpp] view plain
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
char *string = "87654321", *endptr;
long lnumber;
/* strtol converts string to long integer */
lnumber = strtol(string, &endptr, 10);
printf("string = %s long = %ld/n", string, lnumber);
return 0;
}

函數名: strupr
功 能: 將串中的小寫字母轉換為大寫字母
用 法: char *strupr(char *str);
舉例:
[cpp] view plain
#include <stdio.h>
#include <string.h>
int main(void)
{
char *string = "abcdefghijklmnopqrstuvwxyz", *ptr;
/* converts string to upper case characters */
ptr = strupr(string);
printf("%s/n", ptr);
return 0;
}

F. c語言字元串函數有哪些

復制相關函數:memcpy、memmove、strcpy、strncpy
字元串連接函數:strcat、strncat
字元串比較函數:memcmp、strcmp、strcoll、strncmp、strxfrm、
查找函數:memchr、strchr、strcspn、strpbrk、strrchr、strspn、strstr、strtok
其他相關函數:memset、strerror、strlen

G. C語言中字元切割函數split的實現

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

//將str字元以spl分割,存於dst中,並返回子字元串數量
intsplit(chardst[][80],char*str,constchar*spl)
{
intn=0;
char*result=NULL;
result=strtok(str,spl);
while(result!=NULL)
{
strcpy(dst[n++],result);
result=strtok(NULL,spl);
}
returnn;
}

intmain()
{
charstr[]="whatisyouname?";
chardst[10][80];
intcnt=split(dst,str,"");
for(inti=0;i<cnt;i++)
puts(dst[i]);
return0;
}

熱點內容
md5加密演算法代碼 發布:2024-11-06 21:31:01 瀏覽:162
tpshop商城源碼 發布:2024-11-06 21:30:45 瀏覽:843
單本小說網站源碼 發布:2024-11-06 21:11:17 瀏覽:546
mtp緩存 發布:2024-11-06 21:06:43 瀏覽:21
P40存儲卡 發布:2024-11-06 21:02:15 瀏覽:921
大容量鐵電存儲器 發布:2024-11-06 21:02:12 瀏覽:451
淘寶課腳本 發布:2024-11-06 21:00:41 瀏覽:688
網路機櫃和伺服器櫃有什麼不同 發布:2024-11-06 20:50:11 瀏覽:965
戰地5如何查看所有伺服器 發布:2024-11-06 20:46:42 瀏覽:654
sql返回執行結果 發布:2024-11-06 20:30:55 瀏覽:961