日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

指针和字符串

發布時間:2024/7/19 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 指针和字符串 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

指針和字符串?

  [前言] 我們所寫的應用程序都需要從網絡獲取數據,或者從網絡下載數據,這些操作都需要和網絡另一端的服務器進行數據傳輸,這些數據都是通過文件進行傳輸的,文件中就是字符串,我們程序員需要保證正確解析從網絡獲取的數據文件(解析文件中的字符串),保證數據顯示無誤

?

一.認識字符串

  在程序中,“”引起來的就是一個字符串

  如果在程序中直接通過“xxx”書寫一個字符串,這個字符串就會立即被存入內存(代碼區)(代碼區是“只讀區”),在內存中“xxx”中每個字符都會占用一個字節,“xxx”這樣的字符串,編譯器自動會在字符串的末尾添加一個尾零('\0'),這個尾零作為字符串的結束標識

  “xxx”字符串本身也是一個表達式,這個表達式的值是字符串中首字符的地址

?  //同一個字符串,在程序中多次書寫,在內存中只會存儲一份

  [輸入/輸出字符串]

    輸入/輸出字符串需要使用%s格式來表示

    [輸入]?

char str[10];scanf("%s",str);

      [] %s輸入字符串時,scanf語句從[輸入緩沖區]讀取字符串數據,遇到第一個空格或者'\n'就會停止讀取,同時會把 或者'\n'變為'\0'添加到字符串的結尾

      [] 如果想要一次性讀取一行字符串,可以使用以下方法:gets(str);

      [] 從終端讀取一個字符串一般用一個字符數組來存儲,但是不論是使用scanf讀取還是使用gets讀取數據,都必須保 證字符數組空間足夠大

    [輸出]

printf("%s",str);

      [] %s輸出字符串時,是從給定地址的第一個字符開始輸出的,直到遇到'\0'才會停止輸出

?

二.和字符串操作相關的庫函數

  [] 使用操作字符串的庫函數,需要包含頭文件string.h

  <1> strlen,統計字符串中有效字符個數

    '\0'不會被統計? , '\0'是無效字符

size_t strlen(const char * str);

    [注] strlen函數統計字符串中有效字符個數時,遇到第一個'\0'就停止統計

  <2> strcpy,拷貝一個字符串到另一個內存中(字符串的復制)

char * strcpy(char * dest, const char * src);

    [注] dest對應的目的空間,必須支持寫入數據,必須足夠大

  <3> strcat,將一個字符串連接到另一個字符串后面(字符串的連接)

char * strcat(char * str1, const char * str2);

    [注] str1所在的內存空間,必須支持寫入,空間必須足夠大

  <4> strcmp,比較兩個字符串的大小(字符串的比較)?

int strcmp(const char * str1, const char * str2);?

    返回值 0 ? , 表示 str1 等于 str2

    返回值 負數 , 表示 str1 小于 str2

    返回值 正數 , 表示 str1 大于 str2

  <5> strstr,從父串中查找子串的位置(字符串的查找)

char * strstr(const char * fatherString, const char * sonString);

    [注] 如果找到, 返回子串在父串中第一次出現的位置(地址)

    如果沒找到, 返回 NULL ( 0 )?

  <6> strtok , 將一個長字符串分割長多個短字符串(分割字符串)

char * strtok(char * string, const char * separater);

    [注] 實際使用strtok 去分割字符串時, 調用一次strtok會分割到一個短字符串.并且返回這個短字符串的地址. 想要分割 得到多個短字符串,必須通過多次調用strtok函數實現

  <7>atoi 函數, -- 將 數字字符串 轉為數字.[address to int]

    例子:?"123" == > 123

       "123abc"? ==> 123 "-123abc" ==> -123

       "abc123"? ==> 0

       "+123abc" == > 123

?

int? ? atoi(const char *);

轉載于:https://www.cnblogs.com/firstsky/p/5892235.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的指针和字符串的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。