c语言中删除字符串中字母的方法

作者&投稿:蒲蓝 (若有异议请与网页底部的电邮联系)
如何用C语言将字符串中除字母的其他符号删除~

建立一个for循环,从下标为0开始逐字检测字符串元素,对应的ASCII码在'a'(97)至'z'(122)之间的是小写字母,在'A'(65)至'Z'(90)之间的是大写字母,是字母的依次存入同一个数组,问题就解决了。举例代码如下:
//#include "stdafx.h"//If the vc++6.0, with this line.#include "stdio.h"int main(void){ char a[100]="jfk839hfkhd89jl9t5ugifogjshb1783fhdahpp[qhfud",i,j; for(j=i=0;a[i];i++) if(a[i]>='a' && a[i]='A' && a[i]=97 && a[i]=65 && a[i]<=90)//这样写也可以 a[j++]=a[i]; a[j]='\0'; printf("%s
",a);//Look at... return 0;}

代码如下(你自己加上必要的头文件吧):

int main()
{
int indexInp = 0;
int indexRes = 0;
char input[100] = {0};
char result[100] = { 0 };

//输入字符串
scanf("%s", input);

while (input[indexInp] != '\0')//每次读取一个字符,直到字符串结尾
{
//判断字符是否在26个大写字母范围之外,是则保存到result数组中
if (input[indexInp] 'Z')
{
result[indexRes] = input[indexInp];
indexRes++;
}
indexInp++;
}

//输出结果
printf("%s", result);
}

可以根据字符的ASCII码值来判断字符是否是字母,之后将非字母字符存放到另一个字符串数组中,即可达到删除字符串中字母的目的。


具体实现方法可以参考如下程序:

#include<stdio.h>
#include<ctype.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
", str2); // 输出去掉字母后的字符串
}


用你要删除的字符后面的字符把它覆盖掉即从你要删除的字符的下一个集体前移一个,并让最后一个为‘\0’。

#include <stdio.h>
void shanchu(char str[],int m);
void main()
{
char str[81]={0}; int m;
printf("请输入一个字符串:\n");
gets(str);
printf("请输入删除位置:\n");
scanf("%d",&m);
shanchu(str,m);
printf("删除后为:\n");
puts(str);
}

void shanchu(char str[],int m)
{
int i,j;
i=0;
while(str[++i]); //求字符个数
for(j=m;j<=i;j++)
str[j-1]=str[j];
}

void deletechar(char *str, char ch)
{
    char *p,*q=str;
    while(*q != ch) q++;
    p=q++;
    while(*p=*q++) if(*p!=ch) p++;
}

char a[]="123345";
删除多于的'3'
strcpy(a+2,a+3);


C语言编程:在一个指定的 字符串中删除指定的 字符,并输出该字符串。
include <stdio.h> include <string.h> int main(int argc, char **argv){ int num = 0;for (int i = 0; i <= strlen(argv[1]); i++)if (argv[1][i] != argv[2][0]){ argv[1][num] = (i == strlen(argv[1])) ? '\\0' : argv[1][i];num++;} printf("%s\\n...

c语言中删除字符串中字母的方法
可以根据字符的ASCII码值来判断字符是否是字母,之后将非字母字符存放到另一个字符串数组中,即可达到删除字符串中字母的目的。具体实现方法可以参考如下程序:include<stdio.h>#include<ctype.h> \/\/ isalpha函数的头文件void main(){ char *str1=(char *)malloc(50*sizeof(char)); \/\/ 定义...

求C语言代码,删除字符串中重复字符
printf("结果字符串为:%s\\n",str);for(p=str;*p;p++){ for(q=p+1;*p==*q;q++);strcpy(p+1, q);} \/\/删除重复字符的代码 printf("结果字符串为:%s\\n",str);} -- 方法二:char *delete_adjacent_char1(char *str){ if(str==NULL)return NULL;int i=0,j=0;int len=...

C语言,利用指针编写程序:删除一个字符串中的某一个字符
2、其次就是要定义两个相同容量的字符串储存的变量 char a[100]; char b[100];。以及整数变量 int c; int i=0,j=0; 其中a[100]是存字符串的,b【100】是存你删除对应字符的字符串的,整数C是你想删除第几位。j ,i 是后面for循坏中要使用到的变量。3、 printf("请输入你的字符串...

C语言“在字符串中删除指定的字符”?怎么编写程序
从字符数组中删除特定的字符,即输入要删除的指定字符,利用for循环找到非指定字符,将非指定字符输出即可。以下为具体的实现方法:include<stdio.h> int main(){ char str[100],c;int j,k;printf("please input a string:");gets(str);printf("\\nEnter a character:");c=getchar();for(j=...

C语言删除字符串中指定位置(下标)上的字符。删除成功函数返回被删字符...
= s[i + 1]; return ch;}void main(void){ char a[10], b; unsigned int i; printf("请输入字符串: "); gets(a); printf("输入要删除的下标 : "); scanf("%d", &i); b = str(a, i); if(b) { printf("...

帮忙写个C语言编程题。将用户输入的任意字符串中的数字字符全部删除...
把用户输入的字符串从左至右逐字符向同一个数组中拷贝,遇到数字字符时接收计数变量不增量,就会被下一个字符覆盖这个数字字符,直到把'\\0'也拷贝进来。代码如下:include?"stdio.h"int?main(int?argc,char?*argv[]){ char?s[300];int?i,j;printf("Please?enter?a?string...\\n");fgets(s,...

★c语言★如何删除字符串中的第一位?★
直接用strcpy函数。include "stdio.h"include <string.h> void main(){ char str1[10]="^abc";strcpy(str1,str1+1);printf("删除后的字符串为:\\n");puts(str1);}

C语言 删除字符串中的指定字符'*',要求用指针,谢谢~
回答:第一步,求字符串中有多少个*,随便求这个字符串的长度 第二步。申请一块空间,大小为:字符串总长度减去*的个数 第三步,if((string+i)! = ' * ') { (new_string+i) = string+i; }

C语言中删除字符串中的重复字符,然后输出新的字符串
include <stdio.h>#include <string.h>int main(){ char c,str[80]; int i=0,j,k,len; printf("input:"); gets(str); len=strlen(str); c=str[i]; while(c!='\\0') { for(j=i+1;str[j]!='\\0';j++) { if(str[j]==c) { for...

南宁市17061078819: 写一个删除一个字符串中某个字母的c语言程序 -
依制枣仁: void move_t(char str[],int i){ int k; for (k=i;str[k]!=null;k++){ str[k]=str[k++]; } } void delete_string(char str[],char ch){ int i=0; int flag=1; while(flag){ if (!str[i]){ flag=0; break; } move_f(str,i); //用来找到的字符之后将字符之后的字符往前移一个 } } 程序手机打...

南宁市17061078819: C语言“在字符串中删除指定的字符”?怎么编写程序 -
依制枣仁: 从字符数组中删除特定的字符,即输入要删除的指定字符,利用for循环找到非指定字符,将非指定字符输出即可.以下为具体的实现方法: #include<stdio.h> int main() { char str[100],c; int j,k; printf("please input a string:"); gets(str); printf("\...

南宁市17061078819: C语言删除字符串中字符的算法
依制枣仁: 方法1:把要删除的字符后面的字符依次前移一位覆盖前面的字符即可. 方法2:建立另一个字符数组,将要删除的字符之后的字符复制到这个新数组,然后再将新数组中的字符复制到原数组中从要删除的字符开始的位置即可.

南宁市17061078819: C语言删除字符串中的指定字符 -
依制枣仁: for(j=i;p[j];j++)p[j]=p[j+1]; 后面加上一句 i--;

南宁市17061078819: C语言 - 删除字符串中的字符. -
依制枣仁: c语言中书写删除字符串中某个字符的程序的具体操作步骤如下: 1、编写头函数,包括“#include <stdio.h>.”与“#include <string.h>.“. 2、定义两个相同容量的字符串储存的变量 char a【100】; char b【100】.以及整数变量 int c;int i=0,j...

南宁市17061078819: 用C语言编写一个程序(输入一段字符串,并设定一个字母,如果字符串中有这个字母,就把这个字母删除)
依制枣仁: #include <stdio.h> void main() { char s[100],c; int i,j; printf("输入一个字符串:"); gets(s); printf("输入要删除的字符:"); scanf("%c",&c); for(i=j=0;s[i];i++) if(s[i]!=c) s[j++]=s[i]; s[j]='\0'; printf("%s",s); }

南宁市17061078819: c语言编程,编写函数,删除字符串中的英文字母、数字字符;并对连续出现的相同字符,将其缩减为一个. -
依制枣仁: 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++ ...

南宁市17061078819: C语言 删除用户输入的一个字符串中的指定字符 -
依制枣仁: 用字符串的替换语句CString str("ok,.dkfjd"); str.Replace("ok",""); 把ok替换为空,即删除指定字符串.函数第一个参数是指定删除字符串,第二个是替换后的字符串

南宁市17061078819: C语言字符串中删除指定字符 -
依制枣仁: //在你的原程序上修改,注意加注释的地方 #include#include //这个头文件可以不用了 void deletechar(char *s,char c) //delete是保留字,改名为deletechar {int i,j; for(i=0;s[i]!='\0';) {if(s[i]==c) //只是两个字符的比较,不需要strcmp函数for(j=i;s[j]!='\0';...

南宁市17061078819: C语言编程:删除字符串中指定的字符
依制枣仁: #include <stdio.h> #include <string.h> void main() { char s1[100],s2[100]; int i,j,k; char temp; printf("Please input 2 string:\n"); gets(s1); gets(s2); for(i=0;i<strlen(s2);i++) { temp=s2[i]; j=0; while(s1[j]!='\0') { if(s1[j]==temp) { k=j; while(s1[k]!='\0') { s1[k]...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网