常用库函数编程实现用法总结(三) strchr strrev memset strtod
2013-04-21 22:38
621 查看
/******************************************************************************
函数原型: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
***********************/
相关文章推荐
- 常用库函数编程实现用法总结(四)strdup strtok itoa atoi
- 常用库函数编程实现用法总结(二)strstr strcat
- 常用库函数编程实现用法总结(一)memmove memcpy strcpy strncpy
- sort函数的用法(C++排序库函数的调用) 对数组进行排序,在c++中有库函数帮我们实现,这们就不需要我们自己来编程进行排序了。 (一)为什么要用c++标准库里的排序函数 Sort()函数是c+
- Atitit..组件化事件化的编程模型--(2)---------Web datagridview 服务器端控件的实现原理and总结
- 用socket实现服务器的编程总结(转载)
- C#泛型列表List实现二维数组的功能(令附C#泛型列表List基本用法总结)
- Android编程实现画板功能的方法总结【附源码下载】
- String 经常用法最优算法实现总结 (一)
- sprintf、atoi、strlen、strcat、memset、sizeof的一些用法总结
- C#实现注册码功能编程总结
- C编程中fread 、fwrite 用法总结
- str系列函数的用法和实现代码
- 网络编程资料总结(一)----TcpListener和TcpClient的基本用法
- Swing编程边框(Border)的用法总结
- 中控 X638考勤机编程 SetStrCardNumber 用法
- Unix环境高级编程——守护进程记录总结(从基础到实现)
- bash编程之${ }用法总结
- Java多线程编程——synchronized用法总结
- Atitit..组件化事件化的编程模型--(2)---------Web datagridview 服务器端控件的实现原理and总结