(长度最多为80)大小写
字符串长度最大为80,英文字母大小写都要删除
#include <stdio.h>
void fun(char *s){
int i,j;
for(i=0;s[i]>='a' && s[i]<='z' || s[i]>='A' && s[i]<='Z' || s[i]>='0' && s[i]<='9';i++);
for(s[j=0]=s[i++];s[i];i++)
if(!(s[i]>='a' && s[i]<='z' || s[i]>='A' && s[i]<='Z' || s[i]>='0' && s[i]<='9') && s[i]-s[j])
s[++j]=s[i];
s[j+1]='\0';
}
int main(int argc,char *argv[]){
char s[81];
printf("Input a string...\ns=");
fgets(s,81,stdin);
fun(s);
printf("%s",s);
return 0;
}
void fun(char *s){
int i,j;
for(i=0;s[i]>='a' && s[i]<='z' || s[i]>='A' && s[i]<='Z' || s[i]>='0' && s[i]<='9';i++);
for(s[j=0]=s[i++];s[i];i++)
if(!(s[i]>='a' && s[i]<='z' || s[i]>='A' && s[i]<='Z' || s[i]>='0' && s[i]<='9') && s[i]-s[j])
s[++j]=s[i];
s[j+1]='\0';
}
int main(int argc,char *argv[]){
char s[81];
printf("Input a string...\ns=");
fgets(s,81,stdin);
fun(s);
printf("%s",s);
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2017-03-18
int validate(char c) {
if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9'))
return 1;//123...abc...ABC...
else
return 0;//~!#$*%))^+
}
char *fun(char *str) {
int i,j;
for (i=j=0; str[i];) {
while (str[i] == str[i+1] || validate(str[i])) i++;// 不符合条件i++
str[j++] = str[i++];//符合条件的覆盖到前面
str[j] = '\0';//截断后面无用的
}
return str;
}
int main() {
char str[] = "aaaAab#@c124*****(@!";
printf("%s", fun(str));
return 0;
}追答
if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9'))
return 1;//123...abc...ABC...
else
return 0;//~!#$*%))^+
}
char *fun(char *str) {
int i,j;
for (i=j=0; str[i];) {
while (str[i] == str[i+1] || validate(str[i])) i++;// 不符合条件i++
str[j++] = str[i++];//符合条件的覆盖到前面
str[j] = '\0';//截断后面无用的
}
return str;
}
int main() {
char str[] = "aaaAab#@c124*****(@!";
printf("%s", fun(str));
return 0;
}追答
这份代码就ok啦……
int validate(char c) {
if ((c >= 'a' && c = 'A' && c = '0' && c <= '9'))
return 1;//123...abc...ABC...
else
return 0;//~!#$*%))^+
}
char *fun(char *str) {
char result[80];
int i,j;
for (i=j=0; i < strlen(str); i++)
if (!validate(str[i]) && str[i] != result[j-1])
result[j++] = str[i];
str = result;
return str;
}
int main() {
char str[] = "aaaAab#@c124*****(@!";
printf("%s", fun(str));
return 0;
}
第2个回答 2017-03-17
#include "stdio.h"
void del_dig(char *p){
int i,j;
j=i=0;
while(p[j]=p[i++])
if(!(p[j]>='0' && p[j]<='9'))
j++;
}