目录命名为班级加姓名的格式,如 1banz3
参考代码:
mkdir 1banz3
# 切到 1banz3 目录:
cd 1banz3
# 新建 string.c 文件
touch string.c
# 编辑 string.c 文件
vi string.c
输入以下代码
#include<stdio.h>
int main()
{
char c;
char str[20];
enter_string(str);
printf("The delete string is: ");
scanf("%c",&c);
delete_string(str,c);
print_string(str);
return;
}
# 新建 EnterStr.c 文件
touch EnterStr.c
# 编辑 EnterStr.c 文件
vi EnterStr.c
输入以下代码
#include<stdio.h>
int enter_string(char str[20])
{
printf("Input the strings: ");
fgets(str,20,stdin);
return 0;
}
# 新建 DeleteStr.c 文件
touch DeleteStr.c
# 编辑 DeleteStr.c 文件
vi DeleteStr.c
输入以下代码
#include<stdio.h>
int delete_string(char str[],char ch)
{
int i,j;
for(i=j=0;str[i]!='\0';i++)
if(str[i]!=ch)
str[j++]=str[i];
str[j]='\0';
return 0;
}
# 新建 PrintStr.c 文件
touch PrintStr.c
# 编辑 PrintStr.c 文件
vi PrintStr.c
输入以下代码
#include<stdio.h>
int print_string(char str[])
{
printf("Result: %s\n",str);
return 0;
}
# 新建 makefile 文件
touch makefile
# 编辑 makefile 文件
vi makefile
输入以下代码
String:string.o EnterStr.o DeleteStr.o PrintStr.o
gcc string.o EnterStr.o DeleteStr.o PrintStr.o -o String
程序中第一行注明依赖关系
程序中第二行注明即将执行的命令
其中第二行开头按TAB,表示往右缩进一段距离。
执行make命令前先用ll命令查看工作目录下的内容。
如果生成目标文件所依赖的源文件string.c、EnterStr.c、DeleteStr.c和PrintStr.c都在当前工作目录下,则可以运行make命令。
# 使用make命令编译链接生成可执行文件String
make
make操作后会出几行命令,其中cc是C编译器的默认名称。
使用ll
命令查看当前工作目录,可以看到成功编译生成了可执行文件String
,以及一些中间文件(如以.o
结尾的目标文件)
如果不需要中间文件,可以在makefile中添加clean规则:
# 用vi编辑makefile文件
vi makefile
追加以下代码:(注意用TAB缩进而不是四个空格)
clean:
rm -rf string.o EnterStr.o DeleteStr.o PrintStr.o
执行make clean命令从而删除中间文件。
make clean
使用ll
命令可以看到中间文件已经被清除。
如果想要执行命令时不显示某些命令,可以修改makefile文件,在这些命令的前面加上@
符号。
例如修改clean规则,在rm命令前加入@符号:
clean:
@rm -rf string.o EnterStr.o DeleteStr.o PrintStr.o
./String
参考运行结果:
Input the strings: xxyyzz
The delete string is: y
Result: xxzz
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。