不卡AV在线|网页在线观看无码高清|亚洲国产亚洲国产|国产伦精品一区二区三区免费视频

學(xué)習(xí)啦 > 學(xué)習(xí)英語(yǔ) > 專業(yè)英語(yǔ) > 計(jì)算機(jī)英語(yǔ) > c語(yǔ)言puts和gets的用法

c語(yǔ)言puts和gets的用法

時(shí)間: 長(zhǎng)思709 分享

c語(yǔ)言puts和gets的用法

  在語(yǔ)言使用過(guò)程中我們常常用到庫(kù)函數(shù),這些庫(kù)函數(shù)是又人事先編譯好的,那么它們內(nèi)部的代碼究竟如何?我們可以根據(jù)各函數(shù)的說(shuō)明及其功能編譯出同樣的函數(shù)。下面我們來(lái)看看c語(yǔ)言puts和gets的用法分別是什么。
  #include "Stdio.h"
  #include "Conio.h"
  char *mygets(char s[])
  { int i;
  for(i=0;s[i]!='\n';i++)
  s[i]=getchar();
  return s;
  }
  int myputs(char *str)
  {
  int i;
  for(i=0;*str!='\0';i++)
  { putchar(*str);
  str++;
  }
  return;
  }
  main()
  {
  char *p;
  myputs(gets(p));
  getch();
  }
  從mygets函數(shù)的說(shuō)明部分char *mygets(char s[])可以看到,該函數(shù)以字符指針變量為形參,最后返回一個(gè)字符指針變量。再看看函數(shù)體部分:int i; for(i=0;s[i]!='\n';i++)  s[i]=getchar();for循環(huán)中將getchar()輸入的字符存放到動(dòng)態(tài)數(shù)據(jù)s[ ]中,循環(huán)條件是:s[i]!='\n' ,即是遇到回車(chē)時(shí)退出循環(huán)。
  myputs函數(shù)以字符指針變量為形參返回一個(gè)整形數(shù)。for(i=0;*str!='\0';i++)的意思是:從字符串的第一個(gè)字符開(kāi)始循環(huán),直到這個(gè)字符串結(jié)束就退出for循環(huán),'\0' 是字符串的結(jié)束符,任何字符串之后都會(huì)自動(dòng)加上'\0'。for循環(huán)循環(huán)體通過(guò)指針變量的移動(dòng)將指針?biāo)赶虻淖址饌€(gè)輸出,putchar(*str)是輸出指定字符,str++是移動(dòng)指針。
  主函數(shù)中以新定義的指針變量p為mygets函數(shù)的實(shí)參,然后mygets函數(shù)的返回值作為myputs的實(shí)參。
512973