亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C字符串與C++中string的區(qū)別詳解

 更新時間:2013年09月27日 12:04:02   作者:  
以下是對C字符串與C++中string的區(qū)別進行了詳細的分析介紹,需要的朋友可以過來參考下

在C++中則把字符串封裝成了一種數(shù)據(jù)類型string,可以直接聲明變量并進行賦值等字符串操作。以下是C字符串和C++中string的區(qū)別:

 C字符串
 string對象(C++)

所需的頭文件名稱
 <string>或<string.h>
 <string>或<string.h>

需要頭文件 原因
 為了使用字符串函數(shù)
 為了使用string類

聲明 方式
 char name[20];
 string name;

初始化方式
 char name[20]="nihao"; 
 string name = "nihao";

必須聲明字符串長度么?
 是
 否

使用一個null字符么?
 是
 否

字符串賦值 的實現(xiàn)方式
 strcpy(name,"John");
 name = "John";

優(yōu)點
 更快
 更易于使用,優(yōu)選方案

可以賦一個比現(xiàn)有字符更長的字符串么?
 不能
 可以

C++常用字符串函數(shù)
char s1[]="I am a student";
char s2[20]="teacher";
char s3[]="student";
int result;
char s4[20],*p;

(1)串長度 int strlen(char *str)
cout<<strlen(s1)<<endl; 輸出14
cout<<strlen(s2)<<endl; 輸出7

(2)串拷貝 char *strcpy(char *str1,char *str2)
strcpy(s4,s2);   //s4為"teacher"

(3)串連接 char *strcat(char *str1,char*str2)
strcat(s2,s3); //s2為"teacherstudent"

(4)串比較 int strcmp(char *str1,char *str) //比較的是對應字符的ASCII碼值,如果str1>str2,返回1
result=strcmp(s2,s3);   //result>0
result=strcmp(s2,s2);   //result=0
result=strcmp(s3,s2);   //result<0

(5)串定位 char *strchr(char *str,char ch)
p=strchr(s1,'s');    //找到返回字符在字串中的位置,否則返回-1
strcpy(p,s2);      //s1為"I am a teacher"

(6)在一個串中查找是否存在和另一個串相等的子串

(7)截取子串形成一個新串

字符串的輸入
(1)方法一:
使用輸入操符來填充一個C字符串變量
例如:
char a[80];
cin>>a;
注:以這種方式來讀取C字符串時,會忽略最初的空白字符(空格、制表符和換行符),而且輸入會在下一個空格或者換行符處停止。

(2)方法二:使用預定義函數(shù)getline獲取整行輸入(包括空格)
getline函數(shù)有兩個參數(shù):第一個參數(shù)用于接收輸入的C字符串變量;第二個參數(shù)用于規(guī)定getline最多能接收的字符個數(shù)。

例如:
char a[80];
cin.getline(a,80);
當遇到行結束的時候,輸入才會停止。

C++ string類的輸入
(1)方法一:和C字符串輸入的方法一相同。
(2)方法二:使用getline函數(shù)。

例如:
string a;
getline(cin,a);

string對象和C字符串之間的轉換
可以將C字符串存儲在string類型的變量中,例如:
char a[] = "nihao";
string b;
b=a;
但string對象不能自動的轉換為C字符串,需要進行顯式的類型轉換,需要用到string類的成員函數(shù)c_str().

例如:
strcpy(a,b.c_str());

字符串到數(shù)字的轉換
atoi函數(shù)獲取一個C字符串參數(shù),返回對應的int值。如果參數(shù)不與一個int值對應,atoi就會返回0。atoi函數(shù)在文件為cstdlib的庫中。如果數(shù)字太大,不能轉換成int類型的值,可以使用atol將字符串轉換為long類型的值。

例如:
atoi("1234");   //返回整數(shù)1234
atoi("#123");   //返回0

相關文章

  • C語言基礎之格式化輸出控制長度

    C語言基礎之格式化輸出控制長度

    這篇文章主要介紹了C語言基礎之格式化輸出控制長度的相關資料,需要的朋友可以參考下
    2017-04-04
  • C語言 函數(shù)缺省參數(shù)詳情

    C語言 函數(shù)缺省參數(shù)詳情

    這篇文章主要介紹了C語言 的函數(shù)缺省參數(shù)、除了介紹函數(shù)全缺省參數(shù),和半缺省參數(shù)還簡單介紹了函數(shù)聲明、函數(shù)調用等一些函數(shù)的定義,需要的朋友可以參考下面文章內容
    2021-09-09
  • C語言簡易版flappy bird小游戲

    C語言簡易版flappy bird小游戲

    這篇文章主要為大家詳細介紹了C語言簡易版flappy bird小游戲,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • C語言實現(xiàn)掃雷游戲的方法

    C語言實現(xiàn)掃雷游戲的方法

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)掃雷游戲的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • C++約瑟夫環(huán)問題詳解

    C++約瑟夫環(huán)問題詳解

    大家好,本篇文章主要講的是C++約瑟夫環(huán)問題詳解 ,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • c++10進制轉換為任意2-16進制數(shù)字的實例

    c++10進制轉換為任意2-16進制數(shù)字的實例

    下面小編就為大家?guī)硪黄猚++10進制轉換為任意2-16進制數(shù)字的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • C++中輸入輸出流及文件流操作總結

    C++中輸入輸出流及文件流操作總結

    這篇文章主要為大家總結了C++中輸入輸出流及文件流操作,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • C語言數(shù)據(jù)結構與算法之圖的遍歷(二)

    C語言數(shù)據(jù)結構與算法之圖的遍歷(二)

    這篇文章主要是介紹了利用廣度優(yōu)先算法實現(xiàn)圖的遍歷,文中利用圖文詳細的介紹了實現(xiàn)步驟,對我們學習數(shù)據(jù)結構與算法有一定的幫助,需要的朋友可以參考一下
    2021-12-12
  • C語言詳細講解strcpy strcat strcmp函數(shù)的模擬實現(xiàn)

    C語言詳細講解strcpy strcat strcmp函數(shù)的模擬實現(xiàn)

    這篇文章主要介紹了怎樣用C語言模擬實現(xiàn)strcpy與strcat和strcmp函數(shù),strcpy()函數(shù)是C語言中的一個復制字符串的庫函數(shù),strcat()函數(shù)的功能是實現(xiàn)字符串的拼接,strcmp()函數(shù)作用是比較字符串str1和str2是否相同
    2022-05-05
  • C++ vector容器實現(xiàn)貪吃蛇小游戲

    C++ vector容器實現(xiàn)貪吃蛇小游戲

    這篇文章主要為大家詳細介紹了C++ vector容器實現(xiàn)貪吃蛇小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02

最新評論