メインページ | アルファベット順一覧 | データ構造 | ファイル一覧 | データフィールド | グローバル | 関連ページ

# string.c

string.c [詳細]

`#include "string.h"`

string.cのインクルード依存関係図

ソースコードを見る。

## 関数
DKC_INLINE char * | dkcstd_strcpy (char *string1, const char *string2)
DKC_INLINE char * | dkcstd_strncpy (char *string1, const char *string2, size_t count)
DKC_INLINE size_t | dkcstd_strlen (const char *s)
DKC_INLINE int | dkcstd_strcmp (const char *a, const char *b)
DKC_INLINE int | dkcstd_strncmp (const char *a, const char *b, size_t size)
DKC_INLINE char * | dkcstd_strstr (const char *string1, const char *string2)
DKC_INLINE char * | dkcstd_strncat (char *string1, const char *string2, size_t count)
DKC_INLINE size_t | dkcstd_wcslen (const wchar_t *string)
| strlen for unicode
DKC_INLINE wchar_t * | dkcstd_wcsncpy (wchar_t *string1, const wchar_t *string2, size_t count)
| strncpy for unicode
DKC_INLINE wchar_t * | dkcstd_wcsncat (wchar_t *string1, const wchar_t *string2, size_t count)
| strncat for unicode

## 説明

string.c

作者:
  d金魚

から:
  2005/01/17

string.c で定義されています。

## 関数

DKC_INLINE int dkcstd_strcmp | ( | const char * | a,
|  | const char * | b
| ) |

| バグ: '' == 0 としないと　バグる。 string.c の 52 行で定義されています。
    00052                                                          {
    00053     size_t i;
    00054     for(i = 0;; i++)
    00055     {
    00056         //if(b[i] == '\0' || a[i] == '\0'){
    00057         if(0==(b[i] & a[i])){
    00058             break;
    00059         }
    00060         if(b[i] != a[i]){
    00061             return ((int)*a - (int)*b);
    00062         }
    00063     }
    00064     return 0;
    00065
    00066 }

DKC_INLINE char* dkcstd_strcpy | ( | char * | string1,
|  | const char * | string2
| ) |

| string.c の 21 行で定義されています。
    00021                                                                     {
    00022
    00023     size_t i;
    00024     for(i=0;string2[i] != '\0';i++){
    00025         string1[i] = string2[i];
    00026     }
    00027     return string1;
    00028
    00029 }

DKC_INLINE size_t dkcstd_strlen | ( | const char * | s | ) |

| string.c の 43 行で定義されています。 参照元 dkcstd_strncat(), と dkcstd_strstr().
    00043                                               {
    00044     size_t i=0;
    00045     while(s[i] != '\0'){
    00046         i++;
    00047     }
    00048     return i;
    00049 }

DKC_INLINE char* dkcstd_strncat | ( | char * | string1,
|  | const char * | string2,
|  | size_t | count
| ) |

| string.c の 99 行で定義されています。 参照先 dkcstd_strlen(), と dkcstd_strncpy().
    00100 {
    00101     //size_t i;
    00102     size_t len = dkcstd_strlen(string1);
    00103
    00104     return dkcstd_strncpy(&string1[len],string2,count);
    00105 }

DKC_INLINE int dkcstd_strncmp | ( | const char * | a,
|  | const char * | b,
|  | size_t | size
| ) |

| string.c の 68 行で定義されています。 参照元 dkcstd_strstr().
    00069 {
    00070     size_t i;
    00071     for(i = 0; i < size; i++)
    00072     {
    00073         if(b[i] == '\0' && a[i] == '\0'){
    00074         //if(0==(b[i] ^ a[i]){
    00075             break;
    00076         }
    00077         if(b[i] != a[i]){
    00078             return ((int)*a - (int)*b);
    00079         }
    00080     }
    00081     return 0;
    00082 }

DKC_INLINE char* dkcstd_strncpy | ( | char * | string1,
|  | const char * | string2,
|  | size_t | count
| ) |

| string.c の 32 行で定義されています。 参照元 dkcstd_strncat().
    00033 {
    00034     size_t i;
    00035     for(i=0;i < count || string2[i] != '\0';i++)
    00036     {
    00037         string1[i] = string2[i];
    00038     }
    00039
    00040     return string1;
    00041 }

DKC_INLINE char* dkcstd_strstr | ( | const char * | string1,
|  | const char * | string2
| ) |

| string.c の 84 行で定義されています。 参照先 dkcstd_strlen(), dkcstd_strncmp(), と NULL.
    00085 {
    00086     const char *p = string1;
    00087     size_t len = dkcstd_strlen(string2);
    00088     while(*p)
    00089     {
    00090         if(dkcstd_strncmp(p, string2,len ) == 0)
    00091         {
    00092             return (char*)p;
    00093         }
    00094         p++;
    00095     }
    00096     return NULL;
    00097 }

DKC_INLINE size_t dkcstd_wcslen | ( | const wchar_t * | string | ) |

| strlen for unicode string.c の 112 行で定義されています。 参照元 dkcstd_wcsncat().
    00113 {
    00114     size_t i=0;
    00115     while(string[i] != L'\0'){
    00116         i++;
    00117     }
    00118     return i;
    00119 }

DKC_INLINE wchar_t* dkcstd_wcsncat | ( | wchar_t * | string1,
|  | const wchar_t * | string2,
|  | size_t | count
| ) |

| strncat for unicode string.c の 134 行で定義されています。 参照先 dkcstd_wcslen(), と dkcstd_wcsncpy().
    00135 {
    00136     //size_t i;
    00137     size_t len = dkcstd_wcslen(string1);
    00138
    00139     return dkcstd_wcsncpy(&string1[len],string2,count);
    00140
    00141 }

DKC_INLINE wchar_t* dkcstd_wcsncpy | ( | wchar_t * | string1,
|  | const wchar_t * | string2,
|  | size_t | count
| ) |

| strncpy for unicode string.c の 122 行で定義されています。 参照元 dkcstd_wcsncat().
    00123 {
    00124     size_t i;
    00125     for(i=0;i < count || string2[i] != L'\0';i++)
    00126     {
    00127         string1[i] = string2[i];
    00128     }
    00129
    00130     return string1;
    00131
    00132 }