C++和C對字串操作總結
一 c語言的字串
c語言中沒有字串這個資料型別,用兩種方法來表示字串,第一種是字元陣列char s[],第二種是字元指標char *s, 兩者有區別,不能任務是一樣的,區別如下(不完整,後期再慢慢補充)
1 初始化和賦值
char[]字串賦值c語言中可以用“=”對字串初始化,但是不能用“=”對其賦值,否則會出現類似於如下的錯誤:
error: incompatible types in assignment of ‘const char **’ to ‘char **’
如果要對c字串賦值可以使用strcpy()函式。
char *定義的是字串常量,不能對其修改除非使用new對其重新分配記憶體.但是可以對定義的指標修改,如下:
int len_c;
// char[]
char msg[11] = "hello c";
//msg = "hello c string"; //錯誤
strcpy(msg, "hello string"); //正確
//char*
char *s = "hwllo"; //編譯器版本高的時候此處可能會有警告,加上const即可,因為這是定義了字串常量
s = "hello"; // 對指標重定義,允許
s[1] = "e" //對字串常量修改,不允許
2 求c字串的長度/strlen和sizeof的區別
函式: size_t strlen ( const char * str )
標頭檔案: string.h
c語言字串結尾會自動新增一個‘\0’表示字串結束,strlen是計算從字串開始到‘\0’的長度,結果有可能不固定。
比如char s[10], strlen(s)的結果可能不是固定的,視編譯器而定,如果char s[10] = {‘\0’},strlen(s)為0
sizeof()返回的是變數聲明後所佔的記憶體數,不是實際長度,此外sizeof不是函式,僅僅是一個取位元組運算子
3 c字串常用操作
puts() 輸出
char c[] = “aa”;
puts(c);
gets() 輸入
char gt[15];
gets(gt);
strcat()字串連線函式
char a1[10] = “hello”;
char a2[10] = “c”;
strcat(a1, a2);
strcpy() 字串複製
char a1[10];
char a2[10] = “hello c”;
strcpy(a1, a2);
a2為”hello c”
strcmp()字串比較,按照ASCALL碼的大小逐個比較兩個字元陣列中的各個字元,知道出現不相同的或者遇到結束符
strcmp(字元陣列1,字元陣列2);
相等返回0
字元陣列1大於2返回正整數
字元陣列1小於2返回負數
strlen()返回字串實際長度
二 c++中string的操作
1 取子串substr(),包含標頭檔案string、iostream
原型string substr (size_t pos = 0, size_t len = npos) const;
從源字串中的下標為pos的地方獲取長度為npos的長度,如果第二個引數為空,則代表從pos一直獲取到字串結束。
例:
std::string str="We must keep out mind in study";
std::string str2 = str.substr (3,4); // "must"
std::string str3 = str.substr (pos); // from "must" to the end
std::cout << str2 << ' ' << str3 << '\n';
注意它的返回值是string型別,如果要賦給char []型別需要轉換。
2 拷貝
strcpy()
memcpy()
三、型別轉換
1 整型數轉為字串:char *itoa(int value, char *str, int radix)
itoa為interger to array的簡稱,value為整型,str為轉換後的字串,radix為進位制數。
2 字串轉為整型數:int atoi(const char *nptr)
nptr為要轉化你的字串,返回值是轉換後的整型。
3 字元轉為整數
char a = ‘9’;
int k = a - ‘0’;
4 整數轉為字元
int i = 5;
char ch = i + ‘0’;
相關推薦
C++和C對字串操作總結
一 c語言的字串 c語言中沒有字串這個資料型別,用兩種方法來表示字串,第一種是字元陣列char s[],第二種是字元指標char *s, 兩者有區別,不能任務是一樣的,區別如下(不完整,後期再慢慢補充) 1 初始化和賦值 char[]字串賦值c語言中可以用
C語言字串操作總結大全(超詳細) (轉)
轉自部落格園:DoubleLi 1)字串操作 strcpy(p, p1) 複製字串 strncpy(p, p1, n) 複製指定長度字串 strcat(p, p1) 附加字串 strncat(p, p1, n) 附加指定長度字串
C語言(C++)字串操作總結
1)字串讀入 第一種方式: scanf("%s",str); 這種方式,是直接用 scanf,這樣讀字串的話,是從第一個字元讀起,然後讀至 空格、製表符、換行符 停止,是最簡單的方法,也比較常用。 第二種方式: gets(str); 這種讀入方法,是會吃
fwrite fread fscanf fprintf 及C語言對字串操作函式
fwrite fread fscanf fprintf 都是屬於C函式用於檔案讀寫,前兩者對二進位制檔案讀寫,後兩者只要用於格式化的讀取、輸出文字,對文字檔案讀寫。 fscanf() 格式化的讀取,從檔案中讀取 fprintf() 格式化的寫入,寫入到檔案中
C語言字串操作總結大全(超詳細)
1)字串操作 strcpy(p, p1) 複製字串 strncpy(p, p1, n) 複製指定長度字串 strcat(p, p1) 附加字串 strncat(p, p1, n) 附加指定長度字串 strlen(p) 取字串長度 strc
C/C++語言字串操作總結
一、字串操作 1)字串操作 strcpy(p, p1) 複製字串 strncpy(p, p1, n) 複製指定長度字串 strcat(p, p1) 附加字串 strncat(p, p1, n) 附加指定長度字串 strlen(p) 取字串長度 s
C語言字串操作總結大全
1)字串操作 strcpy(p, p1) 複製字串 strncpy(p, p1, n) 複製指定長度字串 strcat(p, p1) 附加字串 strncat(p, p1, n) 附加指定長度字串 strlen(p) 取字串長度 strcmp(p, p1) 比較字
C/C++語言字串操作總結大全(超詳細)
字串操作 strcpy(p, p1) 複製字串 strncpy(p, p1, n) 複製指定長度字串 strcat(p, p1) 附加字串 strncat(p, p1, n) 附加指定長度字串 strlen(p) 取字串長度 strcmp(p, p1) 比較字
C語言--字串操作總結
一、字串操作 1、原型:strcpy(char destination[], const char source[]); 功能:將字串source拷貝到字串destination中 例程: #include <iostream.h> #include
C-C++語言字串操作總結大全
1)字串操作 strcpy(p, p1) 複製字串 strncpy(p, p1, n) 複製指定長度字串 strcat(p, p1) 附加字串 strncat(p, p1, n) 附加指定長度字串 strlen(p) 取字串長度 strcmp(p, p1) 比較字串 strc
2014年8月25日,收藏家和殺手——面向對象的C++和C(一)
creat os x tracking -m end gin 知識 數據 我們 近期事情特別多,睡眠也都非常晚,有點精神和身體混亂的感覺,所以想寫寫技術分析文章。讓兩者的我都調整一下。這篇技術分析文章是一直想寫的,當前僅僅是開篇,有感覺的時候就寫寫,屬於拼湊而成,興
[轉]C語言字符串操作總結大全(超詳細)
轉換 c_str per blog 靜態 母版 們的 set 預留空間 1)字符串操作 strcpy(p, p1) 復制字符串 strncpy(p, p1, n) 復制指定長度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定長度字
C語言中對字串的操
最近對於C語言接收到的資料(字串)處理比較多。 字串:零個或多個字元組成的有限序列。假設:S="abcd1234efghmn",其中S是串列埠,字串中的字元可以是字元、數字或其他字元。 #include <string.h> #include <stdio.h>
C和C++字串處理整理
標籤: c c++ 在刷leetcode題目的過程中,發現自己對於c和c++字串的處理並不是很拿手,處理起來比較費勁,而且,演算法題似乎很中意字串的處理,有很多題目都涉及到它。字串處理比較基礎,但是很重要,因此,整理和深入學習字串的處理對於後續的學習來說擁有巨大的作用。 首先,看C語言環境下
分別使用C和C++判斷字串迴文
迴文串:字串字元從前往後與從後往前一致(中心對稱) C語言判斷迴文串: #include <stdio.h> #include <string.h> int main() { char a[105]; int i,l; whil
C 和 C++ 字符串函數操作
沒有 插入 app sig 根據 const pen 其中 append 1)字符串操作 strcpy(p, p1) 復制字符串 strncpy(p, p1, n) 復制指定長度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定長
C語言中的字串操作
puts(str)函式,直接輸出字串char str[]; gets(str)函式,從鍵盤輸入str[],結束有’\0’; strcat(str1,str2)函式,STRing CATanate字串連線,連線兩個字元陣列的字串,str2中的字串連線在str1後; 1 strcpy(str1,str2)函
linux C 中常用的字串操作函式
<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSi
C語言 重寫C語言庫strchr字串操作函式
#include<stdio.h> #include<string.h> const char *my_strchr(char const *str,int ch) { int i=0; for(;str[i]!='\0';i++
C 和 C++ 的標準庫分別有自己的 locale 操作方法,C 標準庫的 locale 設定函式是 setlocale(),而 C++ 標準庫有 locale 類和流物件的 imbue() 方法(gcc使用zh_CN.GBK,或者zh_CN.UTF-8,VC++使用Chinese_People
轉自:http://zyxhome.org/wp/cc-prog-lang/c-stdlib-setlocale-usage-note/ [在此向原文作者說聲謝謝!若有讀者看到文章轉載時請寫該轉載地址,不要寫我的BLOG地址。尊重他人的勞動成果 ^_^ ] C 和 C++ 的標準庫分別有自己的