九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
部分字符串的實現(xiàn)函數(shù)
  1 /*****************************************************
2 * 函數(shù)說明:
3 * 進(jìn)行字符串拷貝
4 * 函數(shù)參數(shù):
5 * const char *src -源字符串
6 * char *dest -目標(biāo)字符串
7 * 返回值:
8 * 返回目標(biāo)字符串的地址
9 *****************************************************/
10 char *strcpy_yl(const char *src,char *dest)
11 {
12 assert(src!=NULL && dest!=NULL);
13 int len=strlen(src);
14 char *address=dest;
15 if (dest<(src+len))
16 {
17 char *psrc=src+len-1;
18 char *pdest=dest+len-1;
19 while(len--)
20 {
21 *pdest-- = *psrc--;
22 }
23 *(dest+len)='\0';
24 return address;
25 }
26 else
27 {
28 while(len--)
29 {
30 *dest++ = *src++;
31 }
32 *dest='\0';
33 return address;
34 }
35 }
36
37 /*******************************************************
38 * 函數(shù)說明:
39 * 尋找字符串中目標(biāo)字符第一次出現(xiàn)的位置
40 * 函數(shù)參數(shù):
41 * const char *str -字符串
42 * char c -目標(biāo)字符
43 * 返回值:
44 * 如果存在,返回目標(biāo)字符的位置;不存在則返回-1
45 *********************************************************/
46 int strchr_yl(const char *str,char c)
47 {
48 assert(str!=NULL);
49 size_t len=strlen(str);
50 int i;
51 for (i=0;i<len;i++)
52 {
53 if (str[i]==c)
54 {
55 return i;
56 }
57 }
58 return -1;
59 }
60
61 /*************************************************************
62 * 函數(shù)說明:
63 * 對兩個字符串進(jìn)行比較
64 * 函數(shù)參數(shù):
65 * const char *str1 -待比較的字符串1
66 * const char *str2 -待比較的字符串2
67 * 返回值:
68 * 如果字符串1大于字符串2,則返回1;如果字符串1等于字符串2,則返回0;否則返回-1
69 ***************************************************************/
70 int strcmp_yl(const char *str1,const char *str2)
71 {
72 assert(str1!=NULL && str2!=NULL);
73 while(*str1 && *str2 && *str1==*str2)
74 {
75 str1++;
76 str2++;
77 }
78 return (*str1-*str2>0)? 1: (*str1-*str2==0)? 0: -1;
79 }
80
81
82 /*************************************************************
83 * 函數(shù)說明:
84 * 字符串連接
85 * 函數(shù)參數(shù):
86 * const char *src -源字符串
87 * char *dest -目標(biāo)字符串
88 * 返回值:
89 * 返回字符串連接后的字符串的指針
90 ***************************************************************/
91 char *strcat_yl(const char *src,char *dest)
92 {
93 assert(src!=NULL && dest!=NULL);
94 char *pdest=dest;
95 while(dest!='\0')
96 {
97 dest++;
98 }
99 while((*dest++=*src++)!='\0');
100 return pdest;
101 }
102
103
104 /****************************************************************
105 * 函數(shù)說明:
106 * 求字符串的長度
107 * 函數(shù)參數(shù):
108 * const char *str -待求的字符串
109 * 返回值:
110 * 返回字符串的長度
111 ****************************************************************/
112 size_t strlen_yl(const char *str)
113 {
114 assert(str!=NULL);
115
116 size_t len=0;
117 while(*str!='\0')
118 {
119 len++;
120 str++;
121 }
122 return len;
123 }
124
125 /*************************************************************
126 * 函數(shù)說明:
127 * 將src所指向的count個字節(jié)復(fù)制到dest指向的內(nèi)存塊
128 * 函數(shù)參數(shù):
129 * void *dest -目標(biāo)指針
130 * const void *src -源指針
131 * size_t count -要復(fù)制的字節(jié)數(shù)
132 * 返回值:
133 * 返回目標(biāo)地址
134 **************************************************************/
135 void *memcpy_yl(void *dest,const void *src,size_t count)
136 {
137 assert(dest!=NULL && src!=NULL);
138
139 void *pdest=dest;
140 while(count--)
141 {
142 *(char *)dest=*(char *)src;
143 src=(char *)src+1;
144 dest=(char *)dest+1;
145 }
146
147 return pdest;
148
149 }
150
151
152 /************************************************************
153 * 函數(shù)說明:
154 * 將字符串轉(zhuǎn)換為整型
155 * 函數(shù)參數(shù):
156 * string str -待轉(zhuǎn)換的字符串
157 * 返回值:
158 * 返回轉(zhuǎn)換后的整型
159 *************************************************************/
160 int str2int_yl(string str)
161 {
162 assert(str.length()>0);
163 int pos=0;
164 int sign=1;
165 if (str[pos]=='+')
166 {
167 pos++;
168 }
169 else if (str[pos]=='-')
170 {
171 sign=-1;
172 pos++;
173 }
174
175 int num=0;
176 while(pos<str.length())
177 {
178 assert(str[pos]>='0' && str[pos]<='9');
179 num=10*num+(str[pos]-'0');
180 assert(num>=0);
181 pos++;
182 }
183
184 num=num*sign;
185 return num;
186 }
187
188
189 /*******************************************************
190 * 函數(shù)說明:
191 * 找字符串中第一個只出現(xiàn)一次的字符串
192 * 函數(shù)參數(shù):
193 * const char *str -待求的字符串
194 * 返回值:
195 * 返回找到的字符串,如果不存在則返回字符'\0'
196 *******************************************************/
197 char FindNotRepeatChar(const char *str)
198 {
199 if (str==NULL)
200 {
201 return '\0';
202 }
203 const int SIZE=256;
204 int table[SIZE]={0};
205
206 char pstr=str;
207 while(*pstr!='\0')
208 {
209 table[*pstr]++;
210 pstr++;
211 }
212
213 while(*str!='\0')
214 {
215 if (table[*str]==1)
216 {
217 return *str;
218 }
219 str++;
220 }
221
222 return '\0';
223 }
224
225
226 /******************************************************************
227 * 函數(shù)說明:
228 * 字符串中尋找子串
229 * 函數(shù)參數(shù):
230 * const char *string -待求字符串
231 * const char *substring -子串
232 * 返回值:
233 * 返回子串的位置
234 ********************************************************************/
235 int strstr_yl(const char *string,const char substring)
236 {
237 assert(string!=NULL && substring!=NULL);
238
239 size_t len1=strlen(string);
240 size_t len2=strlen(substring);
241
242 int i,j=0;
243 for (i=0;i<len2;i++)
244 {
245
246 if (string[j]!=substring[i])
247 {
248 j++;
249 i=0;
250 }
251 else
252 {
253 j++;
254 }
255
256 if (j>len1-len2)
257 {
258 return -1;
259 }
260
261 }
262
263 if (i==len2)
264 {
265 return j-len2;
266 }
267
268 }
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
淺析C語言中關(guān)于字符串的操作 - C/C++ - 課堂 - 話題 - 張劍 - CSDN學(xué)...
C語言 string.h 中的字符串函數(shù)
strcpy和memcpy的區(qū)別
1.?字符串操作函數(shù)
有意思的字符串查找函數(shù)strchr,strrchr,strstr,strrstr
C語言模擬實現(xiàn)字符串操作函數(shù)
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服