當前位置:首頁 » 編程語言 » c語言stringstr

c語言stringstr

發布時間: 2022-10-30 20:36:14

1. c語言中有string嗎

C語言中沒有string類型。

string類型是 C++、java、VB等編程語言中的。 在java、C#中,String類是不可變的,對String類的任何改變,都是返回一個新的String類對象。string 是C++標准程序庫中的一個頭文件,定義了C++標准中的字元串的基本模板類std::basic_string及相關的模板類實例。

而在C語言中,C語言中沒有字元串類型,字元串是存放在字元型數組中的,將字元串作為字元數組來處理的。為了測定字元串的實際長度,C語言規定了一個「字元串結束標志」,以字元''作為結束標志 。

(1)c語言stringstr擴展閱讀:

C++中string的使用:

其中的string是以char作為模板參數的模板類實例,把字元串的內存管理責任由string負責而不是由編程者負責,大大減輕了C語言風格的字元串的麻煩。std::basic_string提供了大量的字元串操作函數,如比較、連接、搜索、替換、獲得子串等。並可與C語言風格字元串雙向轉換。

字元串在C語言中的使用:

字元串常量初始化數組。如:char c[ ]={『c』,『 』,『p』,『r』,『o','g','r','a','m'};可寫為:char c[ ]={"C program"}; 或去掉{}寫為:char c[ ]="C program"。

2. c語言中str是什麼意思

str -- 通常,程序員喜歡用它作字元串變數名。它是 string(英文詞、字元串的縮寫)

Str函數,返回代表一數值的 Variant(String)。語法Str(number)必要的 number 參數為一 Long,其中可包含任何有效的數值表達式。說明當一數字轉成字元串時,總會在前頭保留一空位來表示正負。



(2)c語言stringstr擴展閱讀:

如果 number 為正,返回的字元串包含一前導空格暗示有一正號。使用 Format 函數可將數值轉成必要的格式,如日期、時間、貨幣或其他用戶自定義格式。與 Str 不同的是,Format 函數不包含前導空格來放置 number 的正負號。

注意 Str 函數只視句點 (.) 為有效的小數點。如果使用不同的小數點(例如,國際性的應用程序),可使用 CStr 將數字轉成字元串。

3. C語言有字元串這種數據類型嗎

C語言有字元串這種數據類型。

  1. C/C++語言 用 char 數組 存放 字元串。

    例如:

  2. charstr[]="abcd1234";
    char*ss="1234XYZ";
    printf("%s %s ",str,ss);
  3. C++ 有 string 類 (class) , 術語 「類」 不是 術語「類型」。java 學了 string 類。例如 :

#include<iostream>
#include<string>
usingnamespacestd;
intmain()
{
stringstr1,str2,str3;
str1="Teststring:";//c-string
str2='x';//singlecharacter
str3=str1+str2;//string
cout<<str3<<endl;
return0;
}

C/C++還可以自己定義類型,例如:

#include<stdio.h>
typedefcharJv_str[100];
main(){
Jv_strs;
printf("enterastring ");
gets(s);
printf("thestringis:%s ",s);
}

4. c語言中str是什麼意思c語言中str的解釋

1、str--通常,程序員喜歡用它作字元串變數名。它是string(英文詞、字元串的縮寫)。
2、Str函數,返回代表一數值的Variant(String)。語法Str(number)必要的number參數為一Long,其中可包含任何有效的數值表達式。說明當一數字轉成字元串時,總會在前頭保留一空位來表示正負。

5. c語言string的用法大全

C語言是一門面向過程的、抽象化的通用程序設計語言,廣泛應用於底層開發。C語言能以簡易的方式編譯、處理低級存儲器。C 語言string的用法有哪些呢,請看看下面我為你整理 總結 的c語言string的用法大全_C語言中string使用 方法 。

c語言string的用法

函數原型:char *strp(const char *s)

函數功能:字元串拷貝,目的空間由該函數分配

函數返回:指向拷貝後的字元串指針

參數說明:src-待拷貝的源字元串

所屬文件:<string.h>

[cpp] view plain

#include<stdio.h>

#include<string.h>

#include<alloc.h>

intmain()

{

char*p_str,*string="abcde";

p_str=strp(string);

printf("%s",p_str);

free(p_str);

return0;

}

@函數名稱:strcpy

函數原型:char* strcpy(char* str1,char* str2);

函數功能:把str2指向的字元串拷貝到str1中去

函數返回:返回str1,即指向str1的指針

參數說明:

所屬文件:<string.h>

[cpp] view plain

#include<stdio.h>

#include<string.h>

intmain()

{

charstring[10];

char*str1="abcdefghi";

strcpy(string,str1);

printf("thestringis:%s ",string);

return0;

}

@函數名稱:strncpy

函數原型:char *strncpy(char *dest, const char *src,intcount)

函數功能:將字元串src中的count個字元拷貝到字元串dest中去

函數返回:指向dest的指針

參數說明:dest-目的字元串,src-源字元串,count-拷貝的字元個數

所屬文件:<string.h>

[cpp] view plain

#include<stdio.h>

#include<string.h>

intmain()

{

char*src="bbbbbbbbbbbbbbbbbbbb";//20'b's

chardest[50]="aaaaaaaaaaaaaaaaaaaa";//20'a's

puts(dest);

strncpy(dest,src,10);

puts(dest);

return0;

}

輸出:

[cpp] view plain

/*******************************************

aaaaaaaaaaaaaaaaaaaa

bbbbbbbbbbaaaaaaaaaa

*******************************************/

注意:strncpy只復制指定長度的字元,不會自動在末尾加''。若指定長度超過源字元串長度,不夠的部分補『』,

@函數名稱:strcat

函數原型:char* strcat(char * str1,char * str2);

函數功能:把字元串str2接到str1後面,str1最後的''被取消

函數返回:str1

參數說明:

所屬文件:<string.h>

[cpp] view plain

#include<stdio.h>

#include<string.h>

intmain()

{

charbuffer[80];

strcpy(buffer,"Hello");

strcat(buffer,"world");

printf("%s ",buffer);

return0;

}

@函數名稱:strncat

函數原型:char *strncat(char *dest, const char *src, size_t maxlen)

函數功能:將字元串src中前maxlen個字元連接到dest中

函數返回:

參數說明:

所屬文件:<string.h>

[cpp] view plain

#include<stdio.h>

#include<string.h>

charbuffer[80];

intmain()

{

strcpy(buffer,"Hello");

strncat(buffer,"world",8);

printf("%s ",buffer);

strncat(buffer,"*************",4);

printf("%s ",buffer);

return0;

}

注意:與strncpy不同的是,strncat會自動在末尾加『』,若指定長度超過源字元串長度,則只復制源字元串長度即停止

@函數名稱:strcmp

函數原型:int strcmp(char * str1,char * str2);

函數功能:比較兩個字元串str1,str2.

函數返回:str1<str2,返回負數;str1=str2,返回 0;str1>str2,返回正數.

參數說明:

所屬文件:<string.h>

[cpp] view plain

#include<string.h>

#include<stdio.h>

intmain()

{

char*buf1="aaa",*buf2="bbb",*buf3="ccc";

intptr;

ptr=strcmp(buf2,buf1);

if(ptr>0)

printf("buffer2isgreaterthanbuffer1 ");

else

printf("buffer2islessthanbuffer1 ");

ptr=strcmp(buf2,buf3);

if(ptr>0)

printf("buffer2isgreaterthanbuffer3 ");

else

printf("buffer2islessthanbuffer3 ");

return0;

}

@函數名稱:strncmp

函數原型:int strncmp(char *str1,char *str2,int count)

函數功能:對str1和str2中的前count個字元按字典順序比較

函數返回:小於0:str1<str2,等於0:str1=str2,大於0:str1>str2

參數說明:str1,str2-待比較的字元串,count-比較的長度

所屬文件:<string.h>

[cpp] view plain

#include<string.h>

#include<stdio.h>

intmain()

{

charstr1[]="aabbc";//

charstr2[]="abbcd";//

//為使測試程序更簡練,此處假定了strncmp只返回-1,0,1三個數

charres_info[]={'<','=','>'};

intres;

//前1個字元比較

res=strncmp(str1,str2,1);

printf("1:str1%cstr2 ",res_info[res+1]);

//前3個字元比較

res=strncmp(str1,str2,3);

printf("3:str1%cstr2 ",res_info[res+1]);

}

輸出:

[cpp] view plain

/****************************************

1:str1=str2

3:str1<str2

*****************************************/

@函數名稱:strpbrk

函數原型:char *strpbrk(const char *s1, const char *s2)

函數功能:得到s1中第一個「同時也出現在s2中」字元的位置指針

函數返回:位置指針

參數說明:

所屬文件:<string.h>

[cpp] view plain

#include<stdio.h>

#include<string.h>

intmain()

{

char*p="Findallvowels";

p=strpbrk(p+1,"aeiouAEIOU");

while(p)

{

printf("%s ",p);

p=strpbrk(p+1,"aeiouAEIOU");

}

return0;

}

輸出:

[cpp] view plain

/**************************************

indallvowels

allvowels

owels

els

**************************************/

@函數名稱:strcspn

函數原型:int strcspn(const char *s1, const char *s2)

函數功能:統計s1中從頭開始直到第一個「來自s2中的字元」出現的長度

函數返回:長度

參數說明:

所屬文件:<string.h>

[cpp] view plain

#include<stdio.h>

#include<string.h>

intmain()

{

printf("%d ",strcspn("abcbcadef","cba"));

printf("%d ",strcspn("xxxbcadef","cba"));

printf("%d ",strcspn("123456789","cba"));

return0;

}

輸出:

[cpp] view plain

/************************

0

3

9

************************/

@函數名稱:strspn

函數原型:int strspn(const char *s1, const char *s2)

函數功能:統計s1中從頭開始直到第一個「不來自s2中的字元」出現的長度

函數返回:位置指針

參數說明:

所屬文件:<string.h>

[html] view plain

#include<stdio.h>

#include<string.h>

#include<alloc.h>

intmain()

{

printf("%d ",strspn("abcbcadef","cba"));

printf("%d ",strspn("xxxbcadef","cba"));

printf("%d ",strspn("123456789","cba"));

return0;

}

輸出:

[cpp] view plain

/************************

6

0

0

************************/

@函數名稱:strchr

函數原型:char* strchr(char* str,char ch);

函數功能:找出str指向的字元串中第一次出現字元ch的位置

函數返回:返回指向該位置的指針,如找不到,則返回空指針

參數說明:str-待搜索的字元串,ch-查找的字元

所屬文件:<string.h>

[cpp] view plain

#include<string.h>

#include<stdio.h>

intmain()

{

char*str="Thisisastring!";

charch;

char*p;

while(1)

{

printf("Pleaseinputachar:");

ch=getchar();

p=strchr(str,ch);

if(p)

printf("%cisthe%dcharacterof"%s" ",ch,(int)(p-str+1),str);

else

printf("Notfound! ");

printf("PressESCtoquit! ");

if(27==getch())

break;

fflush(stdin);

}

return0;

}

運行結果:

[cpp] view plain

/********************************************

Pleaseinputachar:i

iisthe3characterof"Thisisastring!"

PressESCtoquit!

Pleaseinputachar:l

Notfound!

PressESCtoquit!

Pleaseinputachar:s

sisthe4characterof"Thisisastring!"

PressESCtoquit!

**********************************************/

@函數名稱:strrchr

函數原型:char *strrchr(const char *s, int c)

函數功能:得到字元串s中最後一個含有c字元的位置指針

函數返回:位置指針

參數說明:

所屬文件:<string.h>

[cpp] view plain

#include<string.h>

#include<stdio.h>

intmain()

{

charstring[15];

char*ptr,c='r';

strcpy(string,"Thisisastring");

ptr=strrchr(string,c);

if(ptr)

printf("Thecharacter%cisatposition:%d",c,ptr-string);

else

printf("Thecharacterwasnotfound");

return0;

}

@函數名稱:strstr

函數原型:char* strstr(char* str1,char* str2);

函數功能:找出str2字元串在str1字元串中第一次出現的位置(不包括str2的串結束符)

函數返回:返回該位置的指針,如找不到,返回空指針

參數說明:

所屬文件:<string.h>

[cpp] view plain

#include<stdio.h>

#include<string.h>

intmain()

{

char*str1="OpenWatcomC/C++",*str2="Watcom",*ptr;

ptr=strstr(str1,str2);

printf("Thesubstringis:%s ",ptr);

return0;

}

輸出:

The substringis:Watcom C/C++

@函數名稱:strrev

函數原型:char *strrev(char *s)

函數功能:將字元串中的所有字元顛倒次序排列

函數返回:指向s的指針

參數說明:

所屬文件:<string.h>

[cpp] view plain

#include<string.h>

#include<stdio.h>

intmain()

{

charforward[]="string";//原文中定義為char*是不對的,指向代碼段的指針內容是不可變的

printf("Beforestrrev():%s",forward);

strrev(forward);

printf("Afterstrrev():%s",forward);

return0;

}

輸出:

[cpp] view plain

/************************************

Beforestrrev():string

Afterstrrev():gnirts

************************************/

@函數名稱:strnset

函數原型:char *strnset(char *s, int ch, size_t n)

函數功能:將字元串s中前n個字元設置為ch的值

函數返回:指向s的指針

參數說明:

所屬文件:<string.h>

[cpp] view plain

#include<stdio.h>

#include<string.h>

intmain()

{

charstring[]="aaaaaaaaaaaaaaaaaaaaaaa";

charletter='x';

printf("stringbeforestrnset:%s ",string);

strnset(string,letter,10);

printf("stringafterstrnset:%s ",string);

return0;

}

輸出:

[cpp] view plain

/*************************************************

stringbeforestrnset:aaaaaaaaaaaaaaaaaaaaaaa

stringafterstrnset:xxxxxxxxxxaaaaaaaaaaaaa

*************************************************/

@函數名稱:strset

函數原型:char *strset(char *s, int ch)

函數功能:將字元串s中所有字元設置為ch的值

函數返回:指向s的指針

參數說明:

所屬文件:<string.h>

[cpp] view plain

#include<stdio.h>

#include<string.h>

intmain()

{

charstring[10]="123456789";

charsymbol='c';

printf("Beforestrset():%s",string);

strset(string,symbol);

printf("Afterstrset():%s",string);

return0;

}

@函數名稱:strtok

函數原型:char *strtok(char *s1, const char *s2)

函數功能:分解s1字元串為用特定分隔符分隔的多個字元串(一般用於將英文句分解為單詞)

函數返回:字元串s1中首次出現s2中的字元前的子字元串指針

參數說明:s2一般設置為s1中的分隔字元

規定進行子調用時(即分割s1的第二、三及後續子串)第一參數必須是NULL

在每一次匹配成功後,將s1中分割出的子串位置替換為NULL(摘下鏈中第一個環),因此s1被破壞了

函數會記憶指針位置以供下一次調用

所屬文件:<string.h>

[cpp] view plain

#include<string.h>

#include<stdio.h>

intmain()

{

char*p;

char*buffer;

char*delims={".,"};

buffer=strp("Findwords,allofthem.");

printf("%s ",buffer);

p=strtok(buffer,delims);

while(p!=NULL){

printf("word:%s ",p);

p=strtok(NULL,delims);

}

printf("%s ",buffer);

return0;

}//根據測試,可以隨時給strtok的第一個參數輸入一個新的字元串,開始新字元串的分隔

PS:根據測試,可以隨時給strtok的第一個參數輸入一個新的字元串,開始新字元串的分隔

@函數名稱:strupr

函數原型:char *strupr(char *s)

函數功能:將字元串s中的字元變為大寫

函數返回:

參數說明:

所屬文件:<string.h>

[cpp] view plain

#include<stdio.h>

#include<string.h>

intmain()

{

charstring[]="abcdefghijklmnopqrstuvwxyz",*ptr;//會影響原字元串的內存,用char[]來聲明

ptr=strupr(string);

printf("%s",ptr);

return0;

}

@函數名稱:strlwr

函數原型:char *strlwr(char *s)

函數功能:將字元串中的字元變為小寫字元

函數返回:指向s的指針

參數說明:

所屬文件:<string.h>

[cpp] view plain

#include<string.h>

intmain()

{

charstr[]="HOWTOSAY";

printf("%s",strlwr(str));

return0;

}

@函數名稱:strerror

函數原型:char *strerror(int errnum)

函數功能:得到錯誤信息的內容信息

函數返回:錯誤提示信息字元串指針

參數說明:errnum-錯誤編號

所屬文件:<string.h>

[cpp] view plain

#include<stdio.h>

#include<errno.h>

intmain()

{

char*buffer;

buffer=strerror(errno);

printf("Error:%s",buffer);

return0;

}

@函數名稱:memcpy

函數原型:void *memcpy(void *dest, const void *src, size_t n)

函數功能:字元串拷貝

函數返回:指向dest的指針

參數說明:src-源字元串,n-拷貝的最大長度

所屬文件:<string.h>,<mem.h>

[cpp] view plain

#include<stdio.h>

#include<string.h>

intmain()

{

charsrc[]="******************************";

chardest[]="";

char*ptr;

printf("destinationbeforememcpy:%s ",dest);

ptr=memcpy(dest,src,strlen(src));

if(ptr)

printf("destinationaftermemcpy:%s ",dest);

else

printf("memcpyfailed");

return0;

}

輸出:

[cpp] view plain

/*************************************************************

destinationbeforememcpy:

destinationaftermemcpy:******************************456709

**************************************************************/

@函數名稱:memccpy

函數原型:void *memccpy(void *dest, const void *src, int c, size_t n)

函數功能:字元串拷貝,到指定長度或遇到指定字元時停止拷貝

函數返回:

參數說明:src-源字元串指針,c-中止拷貝檢查字元,n-長度,dest-拷貝底目的字元串指針

所屬文件:<string.h>,<mem.h>

[cpp] view plain

#include<string.h>

#include<stdio.h>

intmain()

{

char*src="Thisisthesourcestring";

chardest[50];

char*ptr;

ptr=memccpy(dest,src,'c',strlen(src));

if(ptr)

{

*ptr='';

printf("Thecharacterwasfound:%s",dest);

}

else

printf("Thecharacterwasn'tfound");

return0;

}

輸出:

[cpp] view plain

/*****************************************

Thecharacterwasfound:Thisisthesourc

*****************************************/

PS:指定字元被復制到dest中,memccpy返回了dest中指定字元的下一處的地址,返回NULL表示未遇到指定字元

@函數名稱:memchr

函數原型:void *memchr(const void *s, int c, size_t n)

函數功能:在字元串中第開始n個字元中尋找某個字元c的位置

函數返回:返回c的位置指針,返回NULL時表示未找到

參數說明:s-要搜索的字元串,c-要尋找的字元,n-指定長度

所屬文件:<string.h>,<mem.h>

[cpp] view plain

#include<string.h>

#include<stdio.h>

intmain()

{

charstr[17];

char*ptr;

strcpy(str,"Thisisastring");

ptr=memchr(str,'r',strlen(str));

if(ptr)

printf("Thecharacter'r'isatposition:%d",ptr-str);

else

printf("Thecharacterwasnotfound");

return0;

}

@函數名稱:memcmp

函數原型:int memcmp(const void *s1, const void *s2,size_t n)

函數功能:按字典順序比較兩個串s1和s2的前n個位元組

函數返回:<0,=0,>0分別表示s1<,=,>s2

參數說明:s1,s2-要比較的字元串,n-比較的長度

所屬文件:<string.h>,<mem.h>

[cpp] view plain

#include<stdio.h>

#include<string.h>

intmain()

{

char*buf1="ABCDE123";

char*buf2="abcde456";

intstat;

stat=memcmp(buf1,buf2,5);

printf("Thestringstoposition5are");

if(stat)printf("not");

printf("thesame ");

return0;

}

@函數名稱:memicmp

函數原型:int memicmp(const void *s1, const void *s2, size_t n)

函數功能:按字典順序、不考慮字母大小寫對字元串s1,s2前n個字元比較

函數返回:<0,=0,>0分別表示s1<,=,>s2

參數說明:s1,s2-要比較的字元串,n-比較的長度

所屬文件:<string.h>,<mem.h>

[cpp] view plain

#include<stdio.h>

#include<string.h>

intmain()

{

char*buf1="ABCDE123";

char*buf2="abcde456";

intstat;

stat=memicmp(buf1,buf2,5);

printf("Thestringstoposition5are");

if(stat)printf("not");

printf("thesame");

return0;

}

輸出:

[cpp] view plain

/**************************************

***************************************/

@函數名稱:memmove

函數原型:void *memmove(void *dest, const void *src, size_t n)

函數功能:字元串拷貝

函數返回:指向dest的指針

參數說明:src-源字元串,n-拷貝的最大長度

所屬文件:<string.h>,<mem.h>

[cpp] view plain

#include<string.h>

#include<stdio.h>

intmain()

{

chardest[40]="";

printf("destinationpriortomemmove:%s ",dest);

memmove(dest+1,dest,35);

printf("destinationaftermemmove:%s",dest);

return0;

}

PS:與memcpy不同的是,memmove可以處理目的字元串與源字元串地址空間出現重疊的情況,可保證待復制的內容不被破壞。

@函數名稱: memset

函數原型: void *memset(void *s, int c, size_t n)

函數功能: 字元串中的n個位元組內容設置為c

函數返回:

參數說明: s-要設置的字元串,c-設置的內容,n-長度

所屬文件: <string.h>,<mem.h>

[cpp] view plain

#include<string.h>

#include<stdio.h>

#include<mem.h>

intmain()

{

charbuffer[]="Helloworld";

printf("Bufferbeforememset:%s/n",buffer);

memset(buffer,'*',strlen(buffer)-1);

printf("Bufferaftermemset:%s",buffer);

return0;

}


c語言string的用法大全相關 文章 :

★ c語言string的用法

★ c語言的用法

★ Linux C語言字元與字元串處理

★ c語言中strcmp的用法

★ c語言大括弧的用法

★ c語言位運算符的用法

★ c語言char的用法

★ c語言中sort的用法詳解

★ c語言中int的用法

★ c語言map的用法

6. c語言中str是什麼意思 c語言中str的解釋

1、str -- 通常,程序員喜歡用它作字元串變數名。它是 string(英文詞、字元串的縮寫)。

2、Str函數,返回代表一數值的 Variant(String)。語法Str(number)必要的 number 參數為一 Long,其中可包含任何有效的數值表達式。說明當一數字轉成字元串時,總會在前頭保留一空位來表示正負。

7. c語言中string是啥意思啊 控制啥的啊

String就是C等編程語言中的字元串,用雙引號引起來的幾個字元.如"Abc","一天".

8. c語言中string 和str 有什麼區別

string 是類型名,str應該是你自己定義的變數名吧!

9. c語言中str是什麼意思

str只是編寫程序的人員定義的一個變數,常用來表示字元型變數或字元串,取string的前三個字母。


如:

charstr='a';//定義一個字元變數str,存放一個字元'a'
charstr[]="abcd";//定義一個字元變數str,存放字元串"abcd"

10. C語言中str和string區別

C語言中實沒有string類型的。 str和string都是可以自己聲明的標識符。

熱點內容
資料庫基本命令 發布:2025-01-07 19:50:42 瀏覽:79
3d點歌系統雲伺服器ip地址 發布:2025-01-07 19:47:48 瀏覽:956
定原始演算法 發布:2025-01-07 19:47:04 瀏覽:811
如何讓編譯器認定是什麼段 發布:2025-01-07 19:45:39 瀏覽:155
c語言與c區別 發布:2025-01-07 19:45:37 瀏覽:967
nex5t存儲卡 發布:2025-01-07 19:43:44 瀏覽:318
myeclipse手動編譯 發布:2025-01-07 19:28:35 瀏覽:750
阿里雲資料庫恢復 發布:2025-01-07 19:24:19 瀏覽:415
teradata資料庫 發布:2025-01-07 19:23:31 瀏覽:854
我的世界電腦版無規矩生存伺服器 發布:2025-01-07 19:21:07 瀏覽:611