c语言,删除字符串中的重复字符。
字符也可以使用整数来表示,其实整数0-255用%c来输出就是字符。
#include
int main() {
char s[256]; /*初始化了一个数组来存放输入的串*/
int i = 0, tmp[256] = {0}; /*tmp是一个256个整型数组,初始化成全0*/
printf("Enter the string :
");
gets(s); /*将输入的串存到s中*/
/*分析每个输入的字符,如果字符是'a' 则a=97,那么 tmp[97]将置成1 ,如果下一个字符串还是
'a',那么同样tmp[97]置成1,如果下一个字符是'b',那么tmp[98]将置成1......*/
while(s[i] != '\0')
tmp[s[i++]] = 1;
puts("
After sort and delete operation:");
/*顺序输出255个字符中s串中包含的字符*/
for(i = 0; i < 256;i++)
if(tmp[i])
printf("%c", i);
return 0;
}
那么等于是说全部ascii字符集是256个,如果有哪个字符那么就把它标记上,然后再从0开始顺序输出就可以了。
#include #include 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(k=j;str[k]!='\0';k++) str[k]=str[k+1]; len--; } }c=str[i++]; } puts(str); getchar();}改动后可以运行了,你的错误:1.包含的第二个头文件少写个h2.在发现重复字符后需要删除时,if语句里for循环使用了j和外面大循环的j重复,会造成不可预料的错误3.else后面的赋值不正确,应该等第一个for循环结束后,而不是if判断后
1)肯定要加return j,因为 int fun(int a[], int n)函数完成的功能是把无重复的数放到数组0到j。
2)图片说明如下:
函数需要一个返回值,如果不加returne j也是可以的。把int fun(){}改成void fun(){}, 把n=fun();换成fun();就可以了
c语言 以下程序的功能是删除字符串中的指定字符,字符串和要删除的字符...
循环里面是判断str [i]是不是指定字符,如果不是就赋值给新字符数组str [k],是指定字符就啥也不干,最后循环结束,删除了指定字符,给新的数组加上结束字符\\0,你那个程序循环里面还有一个花括号是隐含在里面的
c语言修改、删除文件中的字符串
符串或串(string)是由零个或多个字符组成的有限序列。一般记为 s='a1a2???an'(n>=0)。它是编程语言中表示文本的数据类型。通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且...
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("请输入你的字符串...
...一个字符数组从键盘输入一个字符串,删除字符串中所有非字母字符,然 ...
include <stdio.h> int main(){ char a[80];gets(a);int i, j = 0;for(i=0; a[i]; i++)if((a[i] >= 'a' && a[i] <='z') || (a[i] >='A' && a[i] <= 'Z')){ a[j] = a[i];j++;} a[j] = '\\0';puts(a);return 0;} ...
C语言 删除字符串中指定下标
没有特定的字符,但是可以通过代码完成你想要的操作。代码如下:include<stdio.h> int main(){ char s[100],*p ,*q ;puts("输入小于100个字符:");gets(s);char del_x;printf("输入要删除的字符:");scanf("%c",&del_x);for(p=s,q=s;*p!='\\0';p++)if(*p!=del_x)*q++=*p;...
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语言 输入一个字符串,删除中间多余的空格
可以参考下面的代码:include "stdio.h"void main(){ char s[]="I am a teacher!";int i,j;for(i=0;s[i];i++){ if(s[i]==32&&s[i+1]==32)\/*如果字符串中第i和i+1个是空格,就运行if中的语句*\/ for(j=i;s[j];j++) {s[j]=s[j+1];i=0;}\/*此句是把2个空格...
★c语言★如何删除字符串中的第一位?★
直接用strcpy函数。include "stdio.h"include <string.h> void main(){ char str1[10]="^abc";strcpy(str1,str1+1);printf("删除后的字符串为:\\n");puts(str1);}
C语言 编写程序输入一个字符串,删除字符串中的所有数字字符后输出此字...
include "stdio.h"include "string.h"void main(){ char str[500];int i;printf("请输入字符串:\\n");gets(str);for(i=0;i<strlen(str);i++){ if(str[i]==' '||(str[i]>='0'&&str[i]<='9'))continue;else printf("%c",str[i]);} printf("\\n");} ...
用c语言编写程序删除字符串中间的'*'号
已通过编译,而且除了printf()和scanf()之外,什么库函数都没用。void main(void){ char *str,i;do { printf("Please input:\\n");scanf("%s",str);for(i=0;str[i]!='\\0';i++);}while(i==0);i=fun(str,i-1); \/*自定义的函数,负责删除'*'*\/ printf("%s\\n",str+i);\/*...
刁阎怡然: C语言自定义函数,一次性去除连续重复字符,参考代码如下: #include<stdio.h> char *fun(char *str) { int i=1,j=0; if(str==NULL) return NULL; if(str[0]==0) return str; while(str[i]!=0) if(str[j]!=str[i]) str[++j]=str[i++]; else ++i; str[j+1]=0; return str; } int main() { char str[500]; gets(str); puts(fun(str)); return 0; }
睢阳区18775652723: C语言 删除重复字符 - ?
刁阎怡然: 程序的基本思路是把输入的字符串放到a[100]字符组中,然后把a[100]中所有不重复的字符添加到b[100]中,间接完成对字符串中的重复字符的删除#include<stdio.h> void main() { char a[100],b[100]; //定义两个字符组,a[100]用来接收输入的字...
睢阳区18775652723: c语言删除重复字符 - ?
刁阎怡然: 你这个代码是删除字符串中的a,不是删除重复的字符,而且用来过度的F[]没有用到,问题比较多,试下这个!Char f[27]; Int I=0,j,k=0; While(chr[i++]!=\0) {for(j=0,j<27,j++) If chr[i]==chr[j] Else f[k++]=chr[i]; } For (j=0,j<27,j++) Chr[j]=f[j]
睢阳区18775652723: 求C语言代码,删除字符串中重复字符 - ?
刁阎怡然: #include #include int main() { std::string str = "aabbcc"; std::cout << "Before: " << str << std::endl; str.erase(std::unique(str.begin(), str.end()), str.end()); std::cout << "After: " << str << std::endl; return 0; }
睢阳区18775652723: 如何用C语言删除一个字符串中的相同字符? 写主要部分哈!非常感谢! - ?
刁阎怡然: for(i=0;i<N-1;i++) for(j=i+1;j<N;j++) if(a[j]==a[i]) a[j]='^'; m=1; for(i=1;i<N;i++) if(a[i]!='^') a[m++]=a[i]; a[m]='\0'; 思路,找到每一个字符后面和它相同的字符,换为一个特殊字符.然后再把特殊字符去掉.记得新串要结束.
睢阳区18775652723: c语言,删除字符串中的重复字符. - ?
刁阎怡然: 1)肯定要加return j,因为 int fun(int a[], int n)函数完成的功能是把无重复的数放到数组0到j. 2)图片说明如下:
睢阳区18775652723: C语言 输入一个字符串 去掉重复的字符,输出无重复的 - ?
刁阎怡然: #include<stdio.h>#include<string.h> main() {int i,a[127]={0}; char s[100]; printf("Enter a string:\n"); gets(s); for(i=0;i<strlen(s);i++) if(a[(int)s[i]]==0) {a[(int)s[i]]=1; printf("%c",s[i]);} printf("\n"); }
睢阳区18775652723: c语言 在字符串中删除与某字符相同的字符 急! - ?
刁阎怡然: scanf_s("%s", a); printf("Input a character : ");改为:scanf_s("%s", a); getchar(); printf("Input a character : ");因为当把a字符串输完后,你会按回车键,但回车键也算一个字符.它被读入到了字符word中.
睢阳区18775652723: 输入一个字符串,调用函数,将字符串中重复出现的符号去掉,c语言 - ?
刁阎怡然: void delSomeCh(char *s, int c) { int i, j; for (i = 0, j = 0; s[i] != 0; i++) { if (s[i] != c) { s[j++] = s[i]; } } s[j] = 0; }
睢阳区18775652723: 求大神!怎么用c语言删除字符串里的重复字符比如输入aa++////9输出aa+/9(字母和数字可以 - ?
刁阎怡然: 参考代码如下:#include <stdio.h> #include <string.h> int GetResult(const char *input, char *output) {int i, j, k = 0;int flag;int length;//判断输入和输出数组是否有值if(input == NULL || output == NULL){return -1;}length=strlen(input);//求数组...