习题1: main函数的参数
- argc: 是个整型变量,表示命令行参数的个数(含第一个参数)
- argv: 是个字符指针的数组,每个元素是一个字符指针,指向一个字符串。这些字符串就是命令行中的每一个参数(字符串)。
- envc: 是字符指针数组, 数组的每一个原元素是一个指向一个环境变量(字符串)的字符指针。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char* argv[], char* envp[])
{
float a = (float)atoi(argv[2]);
float b = (float)atoi(argv[3]);
float res = 0;
if( strcmp("-a", argv[1]) == 0)
{
res = a + b;
}
else if(strcmp("-s", argv[1]) == 0)
{
res = a - b;
}
else if(strcmp("-m", argv[1]) == 0)
{
res = a * b;
}
else if(strcmp("-d", argv[1]) == 0)
{
res = a/b;
}
else
{
;
}
printf("res: %.3f \n", res);
return 0;
}
习题2:排序字符串
写冒泡排序可以排序多个字符串
//思路同冒泡排序,定义一个指针数组。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void bubble_sort_string(char* str[], int size)
{
int i = 0;
int j = 0;
char *tmp = NULL;
for(i=0; i<size-1; i++)
{
for(j=0; j<size-1-i; j++)
{
if (strcmp(*(str + j), *(str + j + 1))>0)
{
tmp = *(str+j);
*(str + j) = *(str + j + 1);
*(str + j + 1) = tmp;
}
}
}
}
int main()
{
char *str[] = {"fgjaa", "basdb", "aada"}; //定义一个数组指针
int size = sizeof(str)/sizeof(*str);
int i = 0;
bubble_sort_string(str, size);
for(i=0; i<size; i++)
{
printf("%s\n", *(str+i));
}
return 0;
}