输入多行,输出不相邻重复的

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
//p64 5 <POINTERS ON C>
#include <stdio.h>
#include <stdlib.h>
int main()
{
char str[128];
char last_str[128];
printf("请输入内容\n");
while (1)
{
gets(str);//遇到换行或文件末尾停
strcpy(last_str, str);
gets(str);//遇到换行或文件末尾停
if (0 == strcmp(last_str, str))
{
while (1)
{
strcpy(last_str, str);
gets(str);//遇到换行或文件末尾停
if (0 != strcmp(last_str, str))
{
printf("重复的为%s\n",last_str);
break;
}
}
}
}
system("pause");
return 0;
}

从一个字符串提取一个子字符串

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
//p65 6 <POINTERS ON C>
//从一个字符串提取一个子字符串;
#include <stdio.h>
#include <stdlib.h>
int substr(char dst[],char str[],int start ,int len,int length)
{
int i;
int j;
if (start > str_length || start < 0 || len < 0)
{
dst = '\0';
return 0;
}
for (i = start - 1,j = 0; i <(start + len - 1); i++,j++)
{
if (str[i] == '\0')
{
break;
}
dst[j] = str[i];
}
dst[j] = '\0';
return i;
}
int main()
{
char dst[30];
char str[30];
int start;
int len;
int str_length;
printf("请输入str\n");
gets(str);
printf("请输入start,len:");
scanf("%d,%d", &start, &len);
str_length = sizeof(str) / sizeof(str[0]);
substr(dst, str, start, len,str_length);
printf("dst:%s\n", dst);
printf("str:%s\n", str);
system("pause");
return 0;
}

从字符串删除多个空格

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
编写一个函数 ,从一个字符串中删除多余空格;

#include <stdio.h>

#include <stdlib.h>

int IS(int str_c)

{

return ' ' == str_c || '\t' == str_c || '\n' == str_c;

}

void deblank(char string[])

{

char* str = string;

char* dst = string;



for (; *str != '\0';)

{

if (IS(*str))

{

*dst++ = ' ';

str++;

while (IS(*str))

{

str++;

}

}

else

{

*dst++ = *str++;

}

}

*dst = '\0';

}

int main()

{

char string[30]= "zh sh ao nian";

deblank(string);

printf("输出为:%s\n",string);

system("pause");

return 0;

}