重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#include stdio.h
创新互联是一家专业提供边坝企业网站建设,专注与网站设计、成都做网站、H5建站、小程序制作等业务。10年已为边坝众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。
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;
}
#include stdio.h
void Deld(char *str)
{
char tmp[100];
int i,j=0;
for (i=0;str[i];i++)
if (str[i]= 'a'str[i]='z'||str[i]='A'str[i]='Z') //删除字母,若是数字,改为='9'='0'
tmp[j++] = str[i];
tmp[j] = '\0';
for (i=0;tmp[i];i++)
str[i] = tmp[i];
str[i] = '\0';
}
void main()
{
char str[111] = "hello world!";
Deld(str);
printf("%s",stsr);
}
结果出来了,你看看吧,满意请采纳
#include stdio.h
#include string.h
void finddd(char x[]);
int main()
{
char a[150];
char *aa;
int a1;
int i;
printf("请输入任意的字符串: ");
gets(a);
finddd(a);
return 0;
}
void finddd(char x[]) // 不带数据返回
{
int i,shu=0;
char aa[100];
int aaa[200]={0};
for(i=0;istrlen(x);i++)
{
if(aaa[ x[i] ] == 0)
{
aaa[ x[i] ] = 1;
aa[shu++]=x[i];
}
}
aa[shu++]='\0';
printf("剔除重复字符后的字符串: %s\n",aa);
}
可以根据字符的ASCII码值来判断字符是否是字母,之后将非字母字符存放到另一个字符串数组中,即可达到删除字符串中字母的目的。
具体实现方法可以参考如下程序:
#includestdio.h
#includectype.h // isalpha函数的头文件
void main()
{
char *str1=(char *)malloc(50*sizeof(char)); // 定义字符指针str1,并申请内存空间,存放用户输入的字符串,最大50个字符
char *str2; // 存放去掉字母后的字符串
int i=0;
scanf("%s", str1); // 接收用户输入的字符串
str2 = (char *)malloc(sizeof(str1));
while(*str1 != '\0')
{
if(!isalpha(*str1)) // 如果不是字母字符,则存放于str2字符串中
{
*(str2+i) = *str1;
i++;
}
str1++;
}
*(str2+i)='\0'; // 将str2末尾字符置结束字符标志
printf("%s\n", str2); // 输出去掉字母后的字符串
}
我也试了一下,没问题,你到底是什么问题,是要在s1或s2中输入空格吗?那么用gets函数;
gets()函数用来从标准输入设备(键盘)读取字符串直到换行符结束,但换行符会被丢弃,然后在末尾添加'\0'字符。
其调用格式为:gets(s);
其中s为字符串变量(字符串数组名或字符串指针)。
gets(s)函数与scanf("%s:",s)/*scanf("%s",s)*/相似,但不完全相同,使用scanf("%s",s);函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个字符串直到遇到换行为止。
你改为:
#includestdio.h
voidmain()
{chars1[50],s2[50];
gets(s1);
gets(s2);
printf("%s\n",s1);
printf("%s\n",s2);
}
这样就用回车表示输入结束
void fun(char a[], int len)
{
int i, j=0;
char *str = (char *)malloc(sizeof(char)*(len+1));
for(i=0; ilen; ++i)
{
if(('1'=a[i] a[i]='9') || ('a'=a[i] a[i]='z') ||('A'=a[i] a[i]='Z'))
str[j++] = a[i];
}
str[j] = '\0';
strcpy(a, str);
free(str);
}