1. 程式人生 > >C++常用庫函式atoi,itoa,strcpy,strcmp的實現

C++常用庫函式atoi,itoa,strcpy,strcmp的實現

原文連結:謝謝 作者

strcmp、strcpy、strlen的實現

  1. #include <assert.h>
  2. char *strcpy(char *dst, constchar *src)//使用const來約束src,表明src對應的內容不能被修改。
  3. {  
  4.     assert((dst != NULL) && (src != NULL));//使用斷言assert來檢驗輸入引數的有效性
  5.     char *tmp = dst;  
  6.     while ((*dst++ = *src++) != '\0')  
  7.      /* nothing */
    ;  
  8.     return tmp;//返回dst,以便實現鏈式表示式    
  9. }  
  10. int strlen(constchar * str)   
  11. {  
  12.      assert( str != NULL );  
  13.      constchar *cp =  str;  
  14.      while (*cp++ )  
  15.           ;  
  16.      return (cp - str - 1 );  
  17.  }   
  18. int strcmp(constchar *src, constchar *dst)  
  19. {  
  20.      assert((dst != NULL) && (src != NULL));  
  21.      int ret = 0 ;   
  22.      while(!(ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst)   
  23.      { ++src; ++dst; }   
  24.      if ( ret < 0 )   
  25.          ret = -1 ;   
  26.      elseif ( ret > 0 )   
  27.          ret = 1 ;   
  28.      return ret;  
  29. }  
atoi,itoa,strcpy,strcmp的實現
  1. 1.
    //整數轉換成字串itoa函式的實現
  2. #include "stdafx.h"
  3. #include <iostream>
  4. usingnamespace std;  
  5. void itoaTest(int num,char str[] )  
  6. {  
  7.        int sign = num,i = 0,j = 0;  
  8.        char temp[11];  
  9.        if(sign<0)//判斷是否是一個負數
  10.        {  
  11.               num = -num;  
  12.        };  
  13.        do
  14.        {  
  15.               temp[i] = num%10+'0';          
  16.               num/=10;  
  17.               i++;  
  18.        }while(num>0);  
  19.        if(sign<0)  
  20.        {  
  21.               temp[i++] = '-';  
  22.        }  
  23.        temp[i] = '/0';  
  24.        i--;  
  25.        while(i>=0)  
  26.        {  
  27.               str[j] = temp[i];  
  28.               j++;  
  29.               i--;  
  30.        }  
  31.        str[j] = '/0';  
  32. }  
  33. 2. //字串轉換成整數atoi函式的實現
  34. int atoiTest(char s[])  
  35. {  
  36.        int i = 0,sum = 0,sign;    //輸入的數前面可能還有空格或製表符應加判斷
  37.        while(' '==s[i]||'/t'==s[i])  
  38.        {  
  39.               i++;  
  40.        }  
  41.        sign = ('-'==s[i])?-1:1;  
  42.        if('-'==s[i]||'+'==s[i])  
  43.        {  
  44.               i++;  
  45.        }  
  46.        while(s[i]!='/0')  
  47.        {  
  48.               sum = s[i]-'0'+sum*10;  
  49.               i++;  
  50.        }      
  51.        return sign*sum;  
  52. }  
  53. 3.//字串拷貝函式
  54. #include "stdafx.h"
  55. #include <assert.h>
  56. #include <string.h>
  57. #include <iostream>
  58. usingnamespace std;  
  59. char *srcpy(char *dest,constchar *source)  
  60. {  
  61.        assert((dest!=NULL)&&(source!=NULL));  
  62.        char *address = dest;  
  63.        while(*source!='/0')  
  64.        {  
  65.               *dest++=*source++;  
  66.        }  
  67.        *dest = '/0';  
  68.        return address;  
  69. }  
  70. 4.//判斷輸入的是否是一個迴文字串
  71. #include "stdafx.h"
  72. #include <string.h>
  73. #include <iostream>
  74. usingnamespace std;  
  75. //方法一:藉助陣列
  76. bool isPalindrome(char *input)  
  77. {  
  78.        char s[100];  
  79.        strcpy(s,input);  
  80.        int length = strlen(input);  
  81.        int begin = 0,end = length-1;  
  82.        while(begin<end)  
  83.        {  
  84.               if(s[begin]==s[end])  
  85.               {  
  86.                      begin++;  
  87. 相關推薦

    C++常用函式atoi,itoa,strcpy,strcmp實現

    原文連結:謝謝 作者 strcmp、strcpy、strlen的實現 #include <assert.h> char *strcpy(char *dst, constchar *src)//使用const來約束src,表明src對應

    C字串——函式系列(strlen、strcat、strcpystrcmp

    一定義: 字串:字串是由零個或者多個字元組成的有限序列; 子串:字串中任意個連續的字元組成的子序列,並規定空串是任意串的子串,字串本身也是子串之一;“abcdefg”,”abc“就是其子串,但是“ade”不屬於子串範圍。 子序列:不要求字元連續,但是其順序與其在主串中相一致;上例中,“abc

    C語言常用函式(含詳細用法)

    一、數學函式 呼叫數學函式時,要求在原始檔中包下以下命令列: #include <math.h> 函式原型說明 功能 返回值 說明 int abs( int x) 求整數x的絕對值 計算結果 double fabs(double

    C語言常用函式

    1 字元處理 ctype.h        2 數學函式 math.h          3 輸入輸出 stdio.h  &nbs

    C語言】編寫函式實現函式atoi,把字串轉換成整形

    //編寫函式實現庫函式atoi,把字串轉換成整形 #include <stdio.h> #include <string.h> int my_atoi(const char *

    C++常用函數&&C++實用技巧與模版 PDF文件

    模版 jpg clas 詳細 body 鏈接 https 信息 實用 如題所示 分享一些函數 pdf文件來自《信息學奧賽一本通》 詳細請見鏈接: https://pan.baidu.com/s/1jKqwH50 密碼: t28b C++常用庫函數&&C

    C++常見函式

    C++常用庫函式   1、常用數學函式     標頭檔案 #include <math> 或者 #include <math.h>   函式原型

    C語言函式(侵刪)

    1.strlen 標頭檔案:#include <string.h> strlen()函式用來計算字串的長度,其原型為:unsigned int strlen (char *s);  s為指定的字串 #include<stdio.h> #include<

    string.h常用函式

    strcpy 函式名: strcpy 功 能: 拷貝一個字串到另一個 用 法: char *strcpy(char *destin, char *source); 程式例: #include <stdio.h> #include <string.h> int ma

    C++常用string函式

    一、字串宣告 // 生成一個空字串 string s; // 拷貝建構函式 string s(str); // 擷取str內從stridx開始的部分賦給s string s(str, stridx); // 將str內從stridx開始,長度最長為strlen的子串賦給s string

    [C++] STL函式之字串string::npos的介紹,以及string中的find函式

    npos經常和find一起用~它們兩個都在標頭檔案<string>裡面~先看用法: #include <iostream> #include <string> us

    在VS2013 使用C語言函式,出現出現錯誤,提示使用不安全函式use _CRT_SECURE_NO_WARNINGS

    在VS 2013 中編譯 C 語言專案,如果使用了 scanf 函式,編譯時便會提示如下錯誤: error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disab

    [Swift]函式atoi:將字串內容轉換為整數

    1、如果第一個非空格字元存在,是數字或者正負號則開始做型別轉換,之後檢測到非數字(包括結束符 \0) 字元時停止轉換,返回Int32整形數。否則,返回0。 1 //返回Int32位整形 2 print(atoi("123456")) 3 //Print 123456 4 print(atoi("

    sort函式的用法(C++排序函式的呼叫)對陣列進行排序,在c++中有函式幫我們實現,這們就不需要我們自己來程式設計進行排序了。

    對陣列進行排序,在c++中有庫函式幫我們實現,這們就不需要我們自己來程式設計進行排序了。 (一)為什麼要用c++標準庫裡的排序函式 Sort()函式是c++一種排序方法之一,學會了這種方法也打消我學習c++以來使用的氣泡排序和選擇排序所帶來的執行效率不高的問題!因為它使用

    utilities——C++常用仿函式(二)

    identity (證同性函式) f(x)=x template<class T> struct identity : public unary_function<T, T

    《崔慶才Python3網路爬蟲開發實戰教程》學習筆記(2):常用函式的安裝與配置

    python的一大優勢就是庫函式極其豐富,網路爬蟲工具的開發使用也是藉助於這一優勢來完成的。那麼要想用Python3做網路爬蟲的開發需要那些庫函式的支援呢? 與網路爬蟲開發相關的庫大約有6種,分別為: 請求庫:requests,selenium,ChromeDrive

    不利用C語言函式實現字串相關函式

    1 #include<stdio.h> 2 3 int strLength(char* s)//求字元長度 4 { 5 int i=0; 6 while(s[i]!=NULL) 7 { 8 i++; 9 }

    利用標準C語言函式進行文字檔案讀寫

        利用C語言進行檔案操作的方法有多種。其中包括在UNIX系統環境下利用系統介面進行檔案操作;在windows系統下可以利用windows系統下可以利用fopen_s等庫函式的安全版本進行檔案操作。但是用的最多的就是利用標準庫函式進行檔案操作。本文主要介紹利用C標準庫函

    c++排序-函式sort()

    對陣列進行排序是很經常遇到的問題,如果我們自己程式設計進行排序則不免會有效率低下,浪費時間等問題,而c++庫函式中則包含這個函式可以幫助我們快速的進行排序,因此我們沒有必要重複造輪子。sort包含在algorithm中,所以如果要使用需#include<slgorith

    C語言函式的漏洞總結【筆記】

    C語言庫函式漏洞 memset函式 strcpy函式 memset函式 memset函式在初始化為 0 的時候沒問題,但是當初始化為 1 時,只有對 1 個位元組大小的資料型別有效,比如 char ,float,但是當