相关回顾
1.关于puts函数的用法
2.字符串输入输出
字符串的输入输出---要点总结,详见https://blog.csdn.net/qq_41704436/article/details/104699255
3.经典--字符串输入输出方法
4.常用的字符串函数
字符串压缩
1.字符串压缩---效果
字符+重复的次数(当字符不重复时不显示数字)
2.字符串压缩---思路
- while(i<strlen(str))
- 保证游标不溢出
- 当i==strlen(str)----跳出这层循环,字符串压缩结束
- 输出str[i]----字符压缩的结构组成
- while(str[i]==str[i+1])
- 初始化的count为1,切记!!!(游标所在位置就是一个字符了)
- 当游标所在位置and下一位置,相同时,count++;i++;
- 当下一个and下下个,相同时,仍在循环内。正常计数!
- str[i] != str[i+1]----跳出这层循环
- 既然两者不相等,往下走----i++;
- if(count!=1)----说明此时要输出重复的数字,最后要count=1(置初始值)
- count==1----不用输出(规则要求)
3.代码1
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char str[50];
int i=0,count=1;
printf("请输入字符串:\n");
gets(str);
printf("显示字符串:\n");
puts(str);
printf("字符串的长度为:%d\n",strlen(str));
//字符串压缩
printf("字符串压缩:\n");
while(i<strlen(str))
{
printf("%c",str[i]);
while(str[i]==str[i+1])
{
count++;
i++;
}
i++;
if(count!=1)
{
printf("%d",count);
}
count=1;
}
return 0;
}
4.注:也可用指针
void CompressStr(char* str)
{
puts("字符串压缩。。。");
int count=1,i=0;
while(i<strlen(str))
{
printf("%c",*(str+i));
while(*(str+i)==*(str+i+1))
{
count++;
i++;
}
if(count!=1)
{
printf("%d",count);
}
/*切记!!!
1.count初始化
2.i++;循环
*/
count=1;
i++;
}
puts("\n完成。。。");
}