1. 现有文件test.c\test1.c\main.c,编写Makkefile
Makefile:
CC=gcc
EXE=a.out
OBJS=$(patsubst %.c,%.o,$(wildcard *.c))
CFLAGS=-c -o
all:$(EXE)
$(EXE):$(OBJS)
$(CC) $^ -o $@
%.o:%.c
$(CC) $(CFLAGS) $@ $^
.PHONY:clean
clean:
@rm $(OBJS) $(EXE)
2. C编程实现:输入一个字符串,计算单词个数
例如:"this is a boy"
输出单词个数:4个
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
char str[50]="";
printf("please enter str:");
gets(str);
int num=0;
char c;
for(int i=0;str[i]!='\0';i++)
{
if(str[i]==' '){
num++;
}
}
printf("%d\n",num+1);
return 0;
}
效果显示:
3. 在终端输入文件名,判断文件的类型
#!/bin/bash
read -p "please enter file:" file #提示输入文件名
if [ -b ./$file ] #判断是否是块设备文件
then
echo block
elif [ -c ./$file ] #判断是否是字符设备文件
then
echo character
elif [ -d ./$file ] #判断是否是目录文件
then
echo directory
elif [ -f ./$file ] #判断是否是普通设备文件
then
echo file
elif [ -L ./$file ] #判断是否是软链接文件
then
echo line
elif [ -S ./$file ] #判断是否是套接字文件
then
echo socket
elif [ -p ./$file ] #判断是否是管道文件
then
echo pipe
else
echo unexist #若文件不存在输出不存在
fi
效果显示:
4. C编程实现字符串的倒置
例如:原字符串为:char *str="I am Chinese"
倒置后为:"Chinese am I".
附加要求:删除原字符串中多余的空格
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
char str[30]="";
printf("please enter str:");
gets(str);
//删除多余空格
int i=0,j=0;
while(str[i]!='\0')
{
if(str[i]!=' '){
str[j]=str[i];
}
j++;
i++;
}
str[j]='\0';
puts(str);
//整体逆置
i=0,j=strlen(str)-1;
while(i<j)
{
char t=str[i];
str[i]=str[j];
str[j]=t;
i++;
j--;
}
//单词逆置
i=j=0;
while(str[i]!='\0')
{
while(str[j]!=' ' && str[j]!='\0')//循环到一个单词结束
{
j++;
}
int k=j-1;//用k存储j-1的下标
while(i<k)//字符串逆置
{
char t=str[i];
str[i]=str[k];
str[k]=t;
i++;
k--;
}
while(str[j]==' ')//j跨过空格,找到下一个单词
{
j++;
}
i=j;
}
puts(str);
return 0;
}
效果显示: