解题思路:构建一个新数组p存放不重复元素,最后再把p重新复制给源数组s。
比较不重复元素的思路:第i个元素与第(i+1)~(len-1)个进行比较,如果相等,则表示有重复,把重复元素变为空格,并设置标志位为0。如果标志位为1,则表示没有重复,放入数组p中。
注意事项:
参考代码:
#include <bits/stdc++.h> using namespace std; void DelPack(char *s) { char *p; int k=0; int len=strlen(s); p=new char[len+1]; //构建一个新数组存放不重复元素 for(int i=0;i<len;i++) { int flag=1; if(s[i]==' ') continue; for(int j=i+1;j<len;j++) //第i个元素与第i+1到第len-1个进行比较,如果相等, if(s[i]==s[j]) //则表示有重复,把重复元素变为空格,并设置标志位为0 { s[j]=' '; flag=0; } if(flag) //如果标志位为1,则表示没有重复,放入数组p中 p[k++]=s[i]; } p[k]='\0'; strcpy(s,p); //重新把字符串p复制给s,然后删除数组p delete []p; return ; } int main() { char str[100]; scanf("%s",str); DelPack(str); printf("%s",str); return 0; }
0.0分
2 人评分
Biggest Number (C++代码)回溯法浏览:1676 |
C语言训练-计算t=1+1/2+1/3+...+1/n (C语言代码)浏览:909 |
C语言程序设计教程(第三版)课后习题10.1 (Java代码)浏览:1492 |
c primer plus 第十二章 12.1小节浏览:400 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:790 |
简单的a+b (C语言代码)浏览:641 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:606 |
数组输出 (C语言代码)浏览:749 |
矩阵的对角线之和 (C语言代码)浏览:1401 |
1162答案错误,为什么浏览:700 |