Changeset 777 for soft/giet_vm/giet_libs/string.c
- Timestamp:
- Feb 4, 2016, 6:25:22 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
soft/giet_vm/giet_libs/string.c
r607 r777 7 7 8 8 /////////////////////////////////////////////////////////////////////////////////// 9 // char * strcpy ( char * destination, const char * source)9 // char * strcpy (char * destination, const char * source) 10 10 /////////////////////////////////////////////////////////////////////////////////// 11 char * strcpy ( char * destination, const char * source)11 char * strcpy (char * destination, const char * source) 12 12 { 13 if (!destination || !source) 13 if (!destination || !source) { 14 14 return destination; 15 } 15 16 16 while (*source) 17 while (*source) { 17 18 *(destination++) = *(source++); 19 } 18 20 19 21 return destination; 20 22 } 21 23 24 22 25 /////////////////////////////////////////////////////////////////////////////////// 23 // int strcmp ( const char * str1, const char * str2)26 // char * strncpy (char * destination, const char * source, int maxlen) 24 27 /////////////////////////////////////////////////////////////////////////////////// 25 int strcmp ( const char * str1, const char * str2)28 char * strncpy(char * dest, const char * src, int n) 26 29 { 27 if (!str1 || !str2) 30 int i; 31 for (i = 0; i < n && src[i] != '\0'; i++) { 32 dest[i] = src[i]; 33 } 34 for (; i < n ; i++) { 35 dest[i] = '\0'; 36 } 37 return dest; 38 } 39 40 41 /////////////////////////////////////////////////////////////////////////////////// 42 // int strcmp (const char * str1, const char * str2) 43 /////////////////////////////////////////////////////////////////////////////////// 44 int strcmp (const char * str1, const char * str2) 45 { 46 if (!str1 || !str2) { 28 47 return -123456; // return a value out of the char's bounds 48 } 29 49 30 while (*str1 && *str1 == *str2) 31 { 50 while (*str1 && *str1 == *str2) { 32 51 str1++; 33 52 str2++; … … 40 59 // int strlen ( const char * str ) 41 60 /////////////////////////////////////////////////////////////////////////////////// 42 int strlen ( const char * str)61 int strlen (const char * str) 43 62 { 44 const char * s = str;63 const char * s = str; 45 64 46 while (*s) 65 while (*s) { 47 66 s++; 48 67 } 49 68 return (s - str); 50 69 } 70 71 72 /////////////////////////////////////////////////////////////////////////////////// 73 // char * strchr(const char * str) 74 /////////////////////////////////////////////////////////////////////////////////// 75 char * strchr(const char * str, int c) 76 { 77 const char * s = str; 78 const char ch = c; 79 while (*s != ch && *s != '\0') { 80 s++; 81 } 82 83 return (char *) s; 84 } 85 51 86 52 87 // Local Variables:
Note: See TracChangeset
for help on using the changeset viewer.