`
kennethf6986
  • 浏览: 67286 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

面试题目之字符串处理【把输入的字符转为数字,并逆序】

阅读更多
#include "stdio.h"
#include "conio.h"
#include "string.h"

void main()
{
	unsigned IsSymmetry(char *c);
	char *s;
	char ss[20];

	printf("Please input a String:\n");
	scanf("%s",ss);
	s=ss;

	IsSymmetry(ss);
}

unsigned IsSymmetry(char *c)
{
	char *p = c; 
	long nNumber = 0; 
	long n = 0; 
	long nTemp = 0;

	/*判断输入是否为空*/ 
	if (*p == '\0') 
		return 1; 

	/*将字符串转换为正整数*/ 
	while( *p != '\0')
	{
		if((*p < '0') || (*p > '9'))
		{
			printf("\n%c", *p);		
			return 2;
		}

		nNumber = (*p-'0') + (nNumber * 10); 
		p++; 
	}
	printf("字符串转为正整数为:%d\n", nNumber);

	n = nNumber;
	
	//将这个正整数逆序
	while(n)
	{
		nTemp = nTemp*10 + n%10; 
		n /= 10; 		
	}
	printf("将这个正整数逆序为:%d\n", nTemp);
}


注意:
1  nNumber = (*p-'0') + (nNumber * 10);
   把字符转为数字的算法。*p-'0',表示p所指当前字符数字的数字值。
    对于C语言来讲,字符是用ASCII码表示的,也就是说一个字符是一个0~255的整数,'0'的ASCII码是48,'1'的ASCII码是49。。。


nTemp = nTemp*10 + n%10;
n /= 10;
注意,求一个数字逆序的算法。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics