//该代码不适用删除连续相同字符,改进(删除移动后,再次判断———循环)
#include <stdio.h>
#include "string.h"
int main()
{
//获取字符串
char str[] = "fsajgsalkg";
char c = 'a';
int i;
printf("%s\n", str);
printf("%d\n", strlen(str));
//遍历字符串
for(i=0; i<strlen(str); i++){
//删除字符a
if(str[i]==c){
int j;
for(j=i; j<strlen(str); j++){
str[j] = str[j+1];
}
}
}
printf("%s\n", str);
printf("%d\n", strlen(str));
return 0;
}
学习到:
- 该题思想
1遍历字符串,2找到指定字符;3删除字符(把后面的字符往前移动) - 指针变量,指针类型
指针类型:指针指向什么类型
指针变量:
eg:char *p
该指针的指向类型为char *
该指针的指针变量为p
指针:指向某一个变量
指针变量:存放指向某一个变量的地址 - 字符与字符串比较
字符:
定义并初始化:char ch = 'A';
使用字符变量ch
所见即所得
字符串:
定义并初始化:char ch[] = "i love you"
使用字符数组ch[]
还有一个看不见的结束标志符:'\0 - 计算字符串长度的的函数srelen()
参数:字符串名
返回值:字符串长度
在头文件"string.h"中
eg:length = strlen(arr);