删除字符
#include<stdio.h>#include<string.h>
int main()
{
extern void cin(char str);
extern void cdelete(char str,char c);
extern void cout(char str);
char str;
cin(str);
char c;
scanf("%c",&c);
cdelete(str,c);
cout(str);
return 0;
}
extern void cin(char str)
{
int i;
int l=strlen(str);
for(i=0;i<l;i++)
{
scanf("%d",&str);
}
}extern void cdelete(char str,char c)
{
int i;
int t=0;
int l=strlen(str);
int j;
for(i=0;i<l;i++)
{
if(str=c)
{
t++;
for(j=i;j<l-1;j++)
{
str=str;
}
str='\0';
}
}
}extern void cout(char str)
{
printf("%s",str);
}
能运行但没结果
本帖最后由 jhq999 于 2022-11-2 17:18 编辑
#include<stdio.h>
#include<string.h>
int main()
{
extern void cin(char str);
extern void cdelete(char str,char c);
extern void cout(char str);
char str;
cin(str);
fflush(stdin);///////////
char c;
scanf("%c",&c);
cdelete(str,c);
cout(str);
return 0;
}
extern void cin(char str)
{
scanf("%s",str) ;///////////如果需要空格scanf(“%[^\n]",str);
}
extern void cdelete(char str,char c)
{
int i;
int j;
for(i=0,j=0;str;i+=1)
{
if(str!=c)str=str,j+=1;////////////
}
str='\0';
}extern void cout(char str)
{
printf("%s",str);
} 本帖最后由 jackz007 于 2022-11-2 18:25 编辑
#include<stdio.h>
#include<string.h>
void cin(char str)
{
scanf("%s" , str) ;
}
void cdelete(char str[] , char c)
{
int i , j , n ;
for(i = 0 , n = strlen(str) ; i < n ;) {
if(str == c) {
for(j = i + 1 ; j < n + 1 ; j ++) str = str ;
n -- ;
} else i ++ ;
}
}
void cout(char str[])
{
printf("%s\n" , str) ;
}
int main()
{
char c , str ;
cin(str) ;
fflush(stdin) ;
scanf("%c", & c) ;
cdelete(str , c) ;
cout(str) ;
return 0 ;
}
编译运行实况:
D:\\C>g++ -o x x.c
D:\\C>x
ABBBCDEBBCDE
B
ACDECDE
D:\\C>
一般不要使用 extern,这个关键字的意思是通知编译器,本标识符(变量、函数、类型等)是有定义的,只要做到先定义,后使用,没必要使用这个关键字。
C 语言的函数必须先定义,然后,才能调用,就是说,函数定义的位置应该位于调用位置之前,只要做到了,任何函数、变量在使用前都不需要声明。就本例而言,只要把 main() 的位置安排在所有函数之后,调用前,就不需要任何的声明。 本帖最后由 桃花飞舞 于 2022-11-2 23:45 编辑
整体没什么问题,
1.extern看起来别扭
2.第33行的if(str=c)改为if(str==c)
3.extern void cin(char str)是最让我不理解的,为什么要写extern void cin(char str)这个函数,为什么不用字符串的输入函数, gets(str);或者scanf("%s",str)来输入。
void cin(char str)
{
// int i;
// int l=strlen(str);
// printf("l = %d\n",strlen(str));
// for(i=0;i<l;i++)
// {
// scanf("%c",&str);
// }
gets(str);
}
页:
[1]