利用指针将C语言中字符串中的数字取出

将字符串中的数字取出;
比如说:
char word = “1234”;
int a;
令a = 1234;因为a定义的是int型所以不能直接让a = word;

    #include<stdio.h>
    #include<stdlib.h>
    #include  <ctype.h>
    main()
    {
    	char word1[] = "1234";
    	//这个地方也可以直接 char *s1 = "1234";
    	char *s1 = word1;
    	int num = 0;
    	while(*s1)//遍历s1中的每个元素
    	{
    		if(isdigit( *s1)) //isdigit(*s1)的作用是判断s1的首个元素内容是不是0-9之间的阿拉伯数字
    		{
    			num = num*10+*s1-'0';//s1-'0',是把数字在字符串中的ASCII码取出转化成数字;
    			s1++;//将字符串的指针向后移动一个字符
    		 }
    	}
    	printf("num的值是:%d\n",num);
    	system("pause"); //头文件是#include<stdlib.h> 防止程序闪退




//上面的循环除了用while也可以用for
//比如说:
int a;//这个地方的int a应该放在最上边,要不然可能报错;
for(a = 0;a < sizeof(s1);a++;)
{
	if(isdigit( *s1)) //isdigit(*s1)的作用是判断s1的首个元素内容是不是0-9之间的阿拉伯数字
    		{
    			num = num*10+*s1-'0';//s1-'0',是把数字在字符串中的ASCII码取出转化成数字;
    			s1++;//将字符串的指针向后移动一个字符
    		 }

}
//for循环中我只是复制了上面while循环中的内容;至于num变量在用到时应该重新换一个变量,记得初始值赋值为0;比如int num2 =0;也是放在最上边;
    }

猜你喜欢

转载自blog.csdn.net/qq_33560272/article/details/86664745
今日推荐