c语言 常用字符串函数
2012-04-24 10:17
253 查看
#include<stdio.h> #include<string.h> #include<ctype.h> #include<assert.h> int _strlen( const char* str ); int _strcmp( const char* first, const char* second ); char* _strcat( char* dst, const char* src ); int _strstr( const char* src, const char* substring ); int _atoi( const char* digitString ); int _strlen( const char* str ) { assert( str != NULL ); int len = 0; while( *str++ != '\0') { ++len; } return len; } int _strcmp( const char* first, const char* second ) { int ret = 0; assert( first!= NULL && second != NULL ); while ( !(ret = *(unsigned char*)first - *(unsigned char*)second) && *first && *second ) { first++; second++; } if ( ret < 0 ) { ret = -1; } else if ( ret > 0 ) { ret = 1; } return ret; } char* _strcat( char* dst, const char* src ) { assert( dst != NULL && src != NULL ); char* addr = dst; while ( *dst != '\0' ) { dst++; } while( *src != '\0' ) { *dst = *src; dst++; src++; } dst++; *dst = '\0'; return addr; } int _strstr( const char* src, const char* substring ) { assert( src != NULL && substring != NULL ); const char* pSrc = src; const char* pSubstring = substring; int len1 = strlen( src ); int len2 = strlen( substring ); int retPos = -1; int i , j; for ( i = 0; i < len1 - len2 + 1; i++ ) { for ( j = 0; j < len2; j++ ) { if ( *(src + i + j) != *(substring + j) ) { break; } } if ( j == len2 ) { retPos = i; return retPos; } } return retPos; } int _atoi( const char* digitString ) { assert( digitString != NULL ); int retVal = 0; int sign = -1; const char* pString; if ( *digitString == '-' ) { pString = digitString + 1; } else if ( *digitString == '+' ) { sign = 1; pString = digitString + 1; } else { sign = 1; pString = digitString; } while ( *pString != '\0' && isdigit(*pString) ) { retVal = retVal * 10 + *pString - '0'; ++pString; } if ( sign == -1 ) { retVal *= -1; } return retVal; } int main() { const char* str = "kennie"; int len = _strlen(str); printf("%s lengh: %d\n", str, len); const char* str2 = "kennie"; const char* str3 = "kenniee"; int cmpResult = _strcmp( str2, str3 ); printf("%s %s compare result: %d\n", str2, str3, cmpResult); char buf[10] = {'i', ' ', 'l', 'o', 'v', 'e'}; const char* str4 = " u!"; char* catString = _strcat(buf, str4); printf("catString is: %s\n", catString); const char* str6 = "i love rena baby"; const char* str7 = "rena"; printf("text: %s, pattern: %s\n", str6, str7); int pos = _strstr( str6, str7 ); if ( pos == -1 ) { printf("substring not find"); } else { printf("pattern \"%s\" first occurs in \"%s\" of pos: %d\n", str7, str6, pos); } const char* str5 = "-2345"; int val = _atoi(str5); printf("string: %s, number: %d\n ", str5, val); return 0; }
// main output
kennie@cbib:~/cplusplus/cstringLib$ g++ -o cstringlib.out cstringlib.cpp
kennie@cbib:~/cplusplus/cstringLib$ ./cstringlib.out
kennie lengh: 6
kennie kenniee compare result: -1
catString is: i love u!
text: i love rena baby, pattern: rena
pattern "rena" first occurs in "i love rena baby" of pos: 7
string: -2345, number: -2345
相关文章推荐
- C语言常用的字符串函数
- C语言中常用字符串函数锦囊
- 三个不常用的c语言字符串函数
- C语言常用字符串函数
- C语言常用字符串函数的实现二
- C语言学习笔记:19_数组-字符数组与字符串(常用字符串函数)
- c语言的常用字符串函数
- C语言常用字符串函数的实现一
- c语言常用字符串函数实现
- C语言常用字符串函数
- C语言宏定义技巧(常用宏定义)
- 优化C语言代码常用的几招
- C语言与OC中常见的字符串函数及其代码和使用
- 20个C语言中常用宏定义总结
- PHP基础之常用字符串函数
- Linux环境下C语言常用宏定义
- C语言项目常用的头文件声明及相关宏定义
- C/C++常用字符串函数实例
- C语言的常用库函数使用方法分析及用途(4)
- ORACLE常用数值函数、转换函数、字符串函数