类型转换

标准头文件<string.h>中声明了strlen和其他字符串函数。
/*strlen函数:返回s的长度*/
int strlen(char s[])
{
 int i;
 i = 0;
 while(s[i] != '\0')
 {
  ++i;
  return i;
 }
}
标准头文件<stdlib.h>声明了atoi函数
/*atoi函数:将字符串s转换为相应的整型值*/
int atoi(char s[])
{
 int i,n;
 n=0;
 for(i=0;s[i]>='0'&&s[i]<='9';++i)
  n=10*n+(s[i]-'0');   /*     此处‘10*n’,是因为最终结果n是一个整数,
        要把上一次得到的n放到这一次n*10所得数之后的个位上。
        例如s[3]={1,2,3},第一次for循环后得到n=1,
        第二次for循环得到n=1*10+2=12,
        第三次for循环后得到n=12*10+3=123      */
 return n;
}
C库函数int atoi(const char *str)把参数str(要转换的字符串)所指向的字符串转换为一个整型(int型)。
该函数返回转换后的长整型,如果没有执行有效的转换,则返回零。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
 int val;
 char str[20];
 strcpy(str,"123456789");
 val = atoi(str);
 printf("字符串值 = %s, 整型值 = %d\n",str, val);
 
 strcpy(str,"www.baidu.com");
 val = atoi(str);
 printf("字符串值 = %s, 整型值 = %d\n",str, val);
 
 return(0);
}
上例的编译结果为:
字符串值 = 123456789, 整型值 = 123456789
字符串值 = www.baidu.com, 整型值 = 0
 
 
 
 
 
 
posted @ 2019-11-12 22:17  烟火流沙  阅读(116)  评论(0编辑  收藏  举报