统计数字、空白符及其其他字符
#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;
}
分享到:
相关推荐
c语言笔记c语言笔记c语言笔记c语言笔记
计算机二级C语言笔记.zip计算机二级C语言笔记.zip计算机二级C语言笔记.zip 计算机二级C语言笔记.zip计算机二级C语言笔记.zip计算机二级C语言笔记.zip 计算机二级C语言笔记.zip计算机二级C语言笔记.zip计算机二级...
结合c/c++开发经历,以及《THE C PROGRAMMING LANGUAGE》和 《C Traps and Pitfails》的阅读笔记。
C语言学习笔记C语言学习笔记C语言学习笔记C语言学习笔记
C语言笔记.pdf
从C的贴吧上复制粘贴过来的。从第一章的概述到指针那块。
单片机C语言笔记单片机C语言笔记
达内 C语言笔记达内 C语言笔记
C语言笔记1C语言笔记1
郝斌老师的C语言课程笔记,从指针开始,动态,链表等等
自己精心整理的C语言学习笔记,不同内容用不同字体来突出: 红色文本内容(要点) 绿色文本内容(注释) 蓝色文本内容(例题) 紫色文本内容(特殊) 红色高亮文本内容(重点)
很好很全的C语言笔记,没有做笔记的朋友拿去看吧,对你有帮助的。
C语言笔记,记录牛人学习C语言知识点,挺全的。
本资料为个人在学习C语言时所作的笔记,适合于C语言初学者使用。
C语言学习笔记 C语言学习笔记 C语言学习笔记 C语言学习笔记
c语言学习笔记c语言学习笔记c语言学习笔记c语言学习笔记c语言学习笔记c语言学习笔记c语言学习笔记
C语言笔记
C语言基础部分学习笔记全部
适合C语言初学者的学习资料,内有基础概念和例题
超级全的C语言付费网课的个人资料整理,让你系统化的了解理解C语言。