1 #include <iostream>
2 #include <cstring>
3 using namespace std;
4 void shellsort(int v[],int n)
5 {
6 int gap,i,j,temp;
7 for (gap = n/2 ; gap >0 ; gap /= 2)
8 {
9 for (i = gap; i < n ; ++i)
10 {
11 for (j = i - gap ; j >=0 && v[j] > v[j+gap] ; j -= gap)
12 {
13 temp = v[j];
14 v[j] = v[j + gap];
15 v[j+gap] = temp;
16 }
17 }
18 }
19 }
20 //倒置字符串s中各个字符的位置
21 void reverse(char s[])
22 {
23 int ch;
24 for (int i = 0,j = strlen(s) - 1;i < j ; i++,j-- )
25 {
26 ch = s[i];
27 s[i] = s[j];
28 s[j] = ch;
29 }
30 }
31 //将整数n转换为字符串并保存在s中
32 void itoa(int n ,char s[])
33 {
34 int i ,sign;
35 if ((sign = n) < 0 )
36 {
37 n = -n;
38 }
39 i = 0;
40 do
41 {
42 s[i++] = n%10 +'0';
43 } while (( n = n/10) > 0 );
44 if (sign < 0 )
45 {
46 s[i++] = '-';
47 }
48 s[i] = '\0';
49 reverse(s);
50 }
51
52 //将n格式化为以b为底的数,保存在s中
53 void itob(int n,char s[] ,int b)
54 {
55 int i ,sign;
56 if ((sign = n) < 0 )
57 {
58 n = -n;
59 }
60 i = 0;
61 do
62 {
63 s[i++] = n%b + '0';
64 } while ((n = n / b) >0);
65
66 if (sign < 0)
67 {
68 s[i++] = '-';
69 }
70
71 s[i] = '\0';
72 reverse(s);
73 }
74
75 //删除字符串尾部的空格、制表符、换行符
76 void trim(char s[])
77 {
78 for (int i = strlen(s) - 1 ; i >0 ; i --)
79 {
80 if (s[i] != ' ' && s[i] != '\t' && s[i] != '\n')
81 {
82 break;
83 }
84 }
85 s[i+1] = '\0';
86 }
87
88 void main()
89 {
90 char s[10];
91 itob(8,s,17);
92 cout<<s<<endl;
93 }