fgets(),fputs(),字串函數

來源:互聯網
上載者:User
#include<stdio.h>#define MAX 81int main(){    char name[MAX];    char * ptr;    printf("hi,what is your name?\n");    ptr=fgets(name,MAX,stdin);    printf("%s?Ah !%s! \n",name,ptr);    return 0;}/*由於fgets把分行符號儲存到字串裡,這樣每次顯示字串時 * 就會顯示分行符號 * 運行結果: * hi,what is your name?tonytony?Ah !tony! */

scanf()可以支援出入字串,也可以限制輸入的長度如scanf("%5s %10s",name1,name2)

puts()函數只需要給出字串參數的地址,它顯示字串時自動在其後添加一個分行符號,要確定輸出的是字串

fputs和fgets()對應,不過需要第二個參數來說明要寫的檔案,可以用stout來作為參數來進行輸出顯示,fgets()儲存輸入中的分行符號,而fputs()也不為輸出添加分行符號

strlen()函數是求字串的長度的,strcat()函數是串連兩個字串的,將後一和字串串連到前一個字串上,傳回值為第一個參數的值

功能:把src所指字串的前n個字元添加到dest結尾處(覆蓋dest結尾處的'\0')並添加'\0'。

說明:src和dest所指記憶體地區不可以重疊且dest必須有足夠的空間來容納src的字串,返回指向dest的指標。

strncat原型:extern char *strncat(char *dest,char *src,int n)多的一個功能就是可以複製指定個數的字元

strcpy()函數實現代碼:

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

把從src地址開始且含有NULL結束符的字串複製到以dest開始的地址空間,其實也就是相當於賦值,類似於a=b,它是字串的賦值;

但是如果實參只是一個字串指標而且未初始化,就會出現錯誤,因為分配的大小不一樣,也就會導致錯誤

#include <stdio.h>#include <stdlib.h>char* strcpy(char *s1,const char *s2)//不變的東西一定要加上const{    int i=0;//char *p=s1,這樣就可以了    while(s2[i]!='\0')//*s2!='\0'    {        s1[i]=s2[i];//*s1++=*s2++;不能這樣做,指標是一直在往後走,因此不能夠實現複製成功,而        i++;    }    s1[i]='\0';    //*s1='\0'    //s1=p;//這個就保證指標同步了,因為指標走到前面,需要回頭才能指向原來的地址    return s1;}  int main(void){    char a[]="hello!";    char b[10];    puts(strcpy(b,a));    printf("%s",strcpy(b,a));    //puts(b);    return 0;}

strcmp()函數,把兩個字串進行比較,而不是數組,傳回值為int 類型

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

此函數功能即比較字串str1和str2的前maxlen個字元。如果前maxlen位元組完全相等,傳回值就=0;在前maxlen位元組比較過程中,如果出現str1[n]與str2[n]不等,則返回(str1[n]-str2[n])。

char *strchr(const char *s ,int c);該函數返回一個指向字串s中存放c的第一個指標的位置

如果不存在就返回null

char *strrchr(const char *s,char c),該函數返回一個指標就是字元c最後一次出現的地方,如果每日有,就返回null 指標

char *strpbrk(const char *s1,const char *s2),該函數返回s1中存放s2字串的任何字元的第一個位置,如果沒有,

則返回null 指標

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.