-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathc面试.c
125 lines (118 loc) · 1.47 KB
/
c面试.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
#include<stdio.h>
#include<string.h>
int main()
{
return 0;
}
//字符串反转
void revstr(const char *str)
{
// char *p= "12345";
int len;
len=strlen(str);
while(len>0)
{
printf("%c",*(str+len-1));
len--;
}
printf("\n");
}
//String To Int
int strtoint(char *str)
{
int n=0;
int neg=0;
if(*str=='-')//is negative number?
{
str=str+1;
neg=1;
}
while(*str!=0)//12345
{
if('9'<*str||*str<'0')
{
printf("string error!\n");
exit(-1);
}
n=n*10+*str-'0';
str++;
}
if(neg)
return -n;
else
return n;
}
//strlen函数的实现
int strlen(const char *str)//unsigned
{
int n=0;
while(*str++!=0)//'\0'
{
n++;
}
return n;
}
//strcpy的实现
char *strcp(char *des,const char *src)
{
char *ret=des;
while((*des++=*src++));//返回左操作数
return ret;
}
//长字符串中找段字符串,返回个数
int find(const char *shortstr, const char *longstr)//short long
{
int n=0;
const char *p1=shortstr;
const char *p=longstr;
while(*p)
{
while(1)
{
if(*shortstr == 0)
{
n++;
break;
}
if(*shortstr != *longstr)
{
break;
}
shortstr++;
longstr++;
}
shortstr=p1;
p=p+1;
longstr=p;
}
return n;
}
//字符串排序
char *sortstr(char *str)
{
char *p=str;
char *ret=str;
char *min;
char c;
while(*p != '\0')
{
min=p;
while(*str != '\0')
{
if(*min>*str)
{
min=str;
}
str=str+1;
}
if(min != p)
{
c=*p;
*p=*min;
*min=c;
}
p=p+1;
str=p;
}
return ret;
}