`
小明哥
  • 浏览: 86198 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

C语言笔记12

    博客分类:
  • C
阅读更多

统计数字、空白符及其其他字符

#include <stdio.h>

/* 统计数字、空白符及其其他字符 */
main()
{
	int c, i, nwhite, nother, ndigit[0];

	nwhite = nother = 0;
	for(i = 0; i < 10; i++)
		ndigit[i] = 0;
	while((c = getchar()) != EOF){
		switch(c){
		case '0': case '1': case '2': case '3': case '4':
		case '5': case '6': case '7': case '8': case '9':
			ndigit[c-'0']++;
			break;
		case ' ':
		case '\n':
		case '\t':
			nwhite++;
			break;
		default:
			nother++;
			break;
		}
	}
	printf("digits =");
	for(i = 0; i < 10; i++)
		printf(" %d", ndigit[i]);
	printf(", white space = %d, other = %d\n", nwhite, nother);
    return 0;
}

 

aroi函数:将s转换为整数型

#include <ctype.h>

/* aroi函数:将s转换为整数型;版本2 */
int atoi(char s[])
{
	int i, n, sign;

	for(i = 0; isspace(s[i]); i++)		/* 跳过空白符 */
		;
	sign = (s[i] == '-') ? -1 : 1;
	if(s[i] == '+' || s[i] == '-')		/* 跳过符号 */
		i++;
	for(n = 0; isdigit(s[i]); i++)
		n = 10 * n + (s[i] - '0');
	return sign * n;
}

 

shellsort函数:按递增顺序对v[0]...v[n-1]进行排序(PS:使用shell算法)

/* shellsort函数:按递增顺序对v[0]...v[n-1]进行排序 */
void shellsort(int v[], int n)
{
	int gap, i, j, temp;

	/* 逐步对折,直到两个比较元素之间距离为0 */
	for(gap = n/2; gap > 0; gap /= 2)	
		/* 元素间移动位置 */
		for(i = gap; i < n; i++)
			/* 比较大小,逆序时互换位置 */
			for(j = i-gap; j >= 0 && v[j] > v[j+gap]; j -= gap){
				temp = v[j];
				v[j] = v[j+gap];
				v[j+gap] = temp;
			}
}
 

reverse函数:倒置字符串s中各个字符的位置

#include <srting.h>

/* reverse函数:倒置字符串s中各个字符的位置 */
void reverse(char s[])
{
	int c, i, j;

	for(i = 0, j = strlen(s)-1; i < j; i++, j--){
		c = s[i];
		s[i] = s[j];
		s[j] = c;
	}
}

 可以看成是一个单步操作

for(i = 0, j = strlen(s)-1; i < j; i++, j--){
		c = s[i], s[i] = s[j], s[j] = c;		
}
 

itoa函数:将数字n转换为字符串并保存到s中

/* itoa函数:将数字n转换为字符串并保存到s中 */
void itoa(int n, char s[])
{
	int c, sign;

	if((sign = n) < 0)	/* 记录符号 */
		n = -n;			/* 使n成为正数 */
	i = 0;
	do{		/* 以反序生成数字 */
		s[i++] = n % 10 + '0';		/* 取下一个数字 */
	}while((n /= 10) > 0);			/* 删除该数字 */
	if(sign < 0)
		s[i++] = '-';
	s[i] = '\0';
	reverse(s);
}
 

trim函数:删除字符串尾部的空格符、制表符和换行符

/* trim函数:删除字符串尾部的空格符、制表符和换行符 */
int trim(char s[])
{
	int n;

	for(n = strlen(s)-1; n >= 0; n--)
		if(s[n] != ' ' && s[n] != '\t' && s[n] != '\n')
			break;
	s[n+1] = '\0';
	return n;
}
 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics