1、Strcat函数原型如下:
#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
char *strca(char *dst, const char * src)
{
char *dst_t;
dst_t = (char *)malloc(sizeof(dst) + sizeof(src));
char *start = dst_t;
assert(dst && src);
while(*dst_t = *dst)
{
dst_t++; dst++;
}
while(*dst_t = *src)
{
dst_t++; src++;
}
*dst_t = '\0';
return start;
}
2、Strcpy函数原型如下:
char *strcpy(char *strDest, const char *strScr)
{
char *address=strDest;
assert((strDest != NULL) && (strScr != NULL));
while(*strScr) //是while(*strScr != ’\0’)的简化形式;
{
*strDest++ = *strScr++;
}
*strDest = '\0'; //当strScr字符串长度小于原strDest字符串长度
return address; //时,如果没有改语句,就会出错了。
}
3、Strcmp函数原型如下:
int strcmp (const char *str1,const char *str2)
{
int len = 0;
assert((str1 != '\0') && (str2 != '\0'));
while(*str1 && *str2 && (*str1 == *str2))
{
str1++;
str2++;
}
return *str1-*str2;
}
4、Strlen函数原型如下:
int strlen(const char *str)
{
int len = 0;
assert(str != NULL);
while(*str++)
{
len++;
}
return len;
}
5、Strncmp函数原型如下:
241 /**
242 * strcmp - Compare two strings
243 * @cs: One string
244 * @ct: Another string
245 */
246 #undef strcmp
247 int strcmp(const char *cs, const char *ct)
248 {
249 unsigned char c1, c2;
250
251 while (1) {
252 c1 = *cs++;
253 c2 = *ct++;
254 if (c1 != c2)
255 return c1 < c2 ? -1 : 1;
256 if (!c1)
257 break;
258 }
259 return 0;
260 }
261 EXPORT_SYMBOL(strcmp);
262 #endif
字符串比较函数,如果两个字符串相等,则返回0,否则返回非零值。
比较两个有限长度的字符串,比较长度为count个字节,
若cs == ct,则返回 0;
若cs < ct,则返回 -1;
若cs > ct,则返回 1;
264 #ifndef __HAVE_ARCH_STRNCMP
265 /**
266 * strncmp - Compare two length-limited strings
267 * @cs: One string
268 * @ct: Another string
269 * @count: The maximum number of bytes to compare
270 */
271 int strncmp(const char *cs, const char *ct, size_t count)
272 {
273 unsigned char c1, c2;
274
275 while (count) {
276 c1 = *cs++;
277 c2 = *ct++;
278 if (c1 != c2)
279 return c1 < c2 ? -1 : 1;
280 if (!c1)
281 break;
282 count--;
283 }
284 return 0;
285 }
286 EXPORT_SYMBOL(strncmp);
287 #endif
同样的是,如果没有遇到字符串结束符,只比较cuont大小数据。