/******************************************************************************
函数原型:extern char *strchr(char *str,char character)
参数说明:str为一个字符串的指针,character为一个待查找字符。
所在库名:#include <string.h>
函数功能:从字符串str中寻找字符character第一次出现的位置。
返回说明:返回指向第一次出现字符character位置的指针,如果没找到则返回NULL。
The strchr() and strrchr() functions return a pointer to the matched character or NULL
if the character is not found.
*******************************************************************************/
char *mystrchr(const char * str, int ch)
{
assert(str != NULL);
for( ; *str != (char)ch; str++)
if(*str == '\0')
return NULL;
return (char *)str;
}
int main()
{
char str[] = "This is a sample string";
char *pch = strchr(str,'s');
printf("The first occurence of 's' found at : %d",pch - str + 1);
return 0;
}
/*************************************************************
原型:extern char *strrev(char *s);
用法:#include <string.h>
功能:把字符串s的所有字符的顺序颠倒过来(不包括空字符NULL)。
说明:返回指向颠倒顺序后的字符串指针。
Reverses the order of characters in the string.
The terminating null character remains in place.
把字符串的所有字符的顺序颠倒过来(不包括空字符NULL)。
返回指向颠倒顺序后的字符串指针。
**************************************************************/
char * my_strrev(char *str)
{
char *right = str;
char *left = str;
char ch;
while (*right) right++;
right--;
while (left < right)
{
ch = *left;
*left++ = *right;
*right-- = ch;
}
return(str);
}
/*****************************************************************
原型:extern void *memset(void *buffer, int c, int count);
功能:把buffer所指内存区域的前count个字节设置成字符c。
包含头文件:<string.h>
注意这个函数是字符串函数,所以一定要包含字符串头文件。
Sets the first "count" bytes of the memory starting at "dst" to the character value "val".
把dst所指内存区域的前count个字节设置为val。返回指向dst的指针。
********************************************************************/
void * my_memset(void *dst,int val,int count)
{
void *p = dst;
while (count--)
{
*(char *)dst = (char)val;
dst = (char *)dst + 1;
}
return p;
}
void *memset(void *src, int c, size_t count)
{
assert(src!=NULL);
char *tmpsrc=(char*)src;
while(count--)
*tmpsrc++ =(char)c;
return src;
}
/**************************************************************************
strtod(将字符串转换成浮点数)
相关函数 atoi,atol,strtod,strtol,strtoul
表头文件 #include<stdlib.h>
定义函数 double strtod(const char *nptr,char **endptr);
函数说明 strtod()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上
数字或正负符号才开始做转换,到出现非数字或字符串结束时
('\0')才结束转换,并将结果返回。若endptr不为NULL,则会将遇
到不合条件而终止的nptr中的字符指针由endptr传回。参数nptr字
符串可包含正负号、小数点或E(e)来表示指数部分。如123.456或123e-2。
返回值 返回转换后的浮点型数。
/*将字符串a,b,c 分别采用10,2,16 进制转换成数字*/
#include<stdlib.h>
int main()
{
char a[]=”1000000000”;
char b[]=”1000000000”;
char c[]=”ffff”;
printf(“a=%d\n”,strtod(a,NULL,10));
printf(“b=%d\n”,strtod(b,NULL,2));
printf(“c=%d\n”,strtod(c,NULL,16));
}
/**********************
a=1000000000
b=512
c=65535
***********************/
函数原型:extern char *strchr(char *str,char character)
参数说明:str为一个字符串的指针,character为一个待查找字符。
所在库名:#include <string.h>
函数功能:从字符串str中寻找字符character第一次出现的位置。
返回说明:返回指向第一次出现字符character位置的指针,如果没找到则返回NULL。
The strchr() and strrchr() functions return a pointer to the matched character or NULL
if the character is not found.
*******************************************************************************/
char *mystrchr(const char * str, int ch)
{
assert(str != NULL);
for( ; *str != (char)ch; str++)
if(*str == '\0')
return NULL;
return (char *)str;
}
int main()
{
char str[] = "This is a sample string";
char *pch = strchr(str,'s');
printf("The first occurence of 's' found at : %d",pch - str + 1);
return 0;
}
/*************************************************************
原型:extern char *strrev(char *s);
用法:#include <string.h>
功能:把字符串s的所有字符的顺序颠倒过来(不包括空字符NULL)。
说明:返回指向颠倒顺序后的字符串指针。
Reverses the order of characters in the string.
The terminating null character remains in place.
把字符串的所有字符的顺序颠倒过来(不包括空字符NULL)。
返回指向颠倒顺序后的字符串指针。
**************************************************************/
char * my_strrev(char *str)
{
char *right = str;
char *left = str;
char ch;
while (*right) right++;
right--;
while (left < right)
{
ch = *left;
*left++ = *right;
*right-- = ch;
}
return(str);
}
/*****************************************************************
原型:extern void *memset(void *buffer, int c, int count);
功能:把buffer所指内存区域的前count个字节设置成字符c。
包含头文件:<string.h>
注意这个函数是字符串函数,所以一定要包含字符串头文件。
Sets the first "count" bytes of the memory starting at "dst" to the character value "val".
把dst所指内存区域的前count个字节设置为val。返回指向dst的指针。
********************************************************************/
void * my_memset(void *dst,int val,int count)
{
void *p = dst;
while (count--)
{
*(char *)dst = (char)val;
dst = (char *)dst + 1;
}
return p;
}
void *memset(void *src, int c, size_t count)
{
assert(src!=NULL);
char *tmpsrc=(char*)src;
while(count--)
*tmpsrc++ =(char)c;
return src;
}
/**************************************************************************
strtod(将字符串转换成浮点数)
相关函数 atoi,atol,strtod,strtol,strtoul
表头文件 #include<stdlib.h>
定义函数 double strtod(const char *nptr,char **endptr);
函数说明 strtod()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上
数字或正负符号才开始做转换,到出现非数字或字符串结束时
('\0')才结束转换,并将结果返回。若endptr不为NULL,则会将遇
到不合条件而终止的nptr中的字符指针由endptr传回。参数nptr字
符串可包含正负号、小数点或E(e)来表示指数部分。如123.456或123e-2。
返回值 返回转换后的浮点型数。
/*将字符串a,b,c 分别采用10,2,16 进制转换成数字*/
#include<stdlib.h>
int main()
{
char a[]=”1000000000”;
char b[]=”1000000000”;
char c[]=”ffff”;
printf(“a=%d\n”,strtod(a,NULL,10));
printf(“b=%d\n”,strtod(b,NULL,2));
printf(“c=%d\n”,strtod(c,NULL,16));
}
/**********************
a=1000000000
b=512
c=65535
***********************/