第1个回答 2008-12-04
#include <stdio.h>
#include <string.h>
//删除字符函数,参数分别是目标串和要删除的字符
void deleteC(char* str, char del)
{
int i = 0;
int j = 0;
char* ptr = str;
while(ptr[i] != '\0')
{
if (ptr[i] == del)//找到要删除的字符
{
j = i;
//该循环将要删除字符后面的字符
//与前面的接上
while (ptr[j] != '\0')
{
ptr[j] = ptr[j + 1];
j++;
}
}
i++;
}
}
void main()
{
char tmp[20]; //存储输入的字符串
printf("Enter the string:\n");
scanf("%s",&tmp);
printf("%s\n",tmp);
deleteC(tmp, 'd');//删除大写的C
printf("%s\n",tmp);
}
第2个回答 2008-12-04
void main()
{
char temp[100];
char *p = temp;
char test;
int i = 0;
int j;
gets(p);/*取得字符串*/
while(temp[i] != '\0'){/*查找'd'直到字符串结束*/
if(temp[i] == 'd'){
for(j = i; temp[j] != '\0'; j++){/*找到'd',把后面的字符前移一位*/
temp[j] = temp[j+1];
}
}
i++;
}
puts(p);
getch();
}
第3个回答 2008-12-04
#include <string>
#include <iostream>
using namespace std;
void main()
{
char ch[100];
cin.getline(ch,100,'\n');
string str(ch);
int i,j;
for(i=0;i<str.length();i++)
{
if(ch[i]=='d')
for(j=i;j<str.length();j++)
ch[j]=ch[j+1];
}
cout<<ch<<" "<<endl;
}
第4个回答 2008-12-04
把注释的两行加上就可以实现删除输入的字符
函数中的do{}while()循环很经典。
#include<stdio.h>
#include <conio.h>
#define N 20
void char_search(char str[], char c)
{
char *p=str;
do
if (*str!=c)
*p++=*str;
while (*str++);
}
void main()
{
char str[N];
char c='d';
/*
printf("input a char that you wang to delete:");
scanf("%c",&c);*/
printf("input a string:");
scanf("%s",str);
char_search(str,c);
printf("%s\n",str);
getch();
}