将一个数组用100以内的整数填充,然后将其进行排序,将奇数放在数组的前半部分,偶数放在数组的后半部分。1.c
/**
* @file 1.c
* @brief 将一个数组用100以内的整数填充,然后将其进行排序,将奇数放在数组的前半部分,偶数放在数组的后半部分
* @author GaoJinlong
* @version 0.1
* @date 2011-09-09
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define LEN 10
void init(int *num, int len)
{
int i;
srand(time(NULL));
for (i = 0; i < len; i++)
num[i] = rand() % 100;
}
void print(int *num, int len)
{
int i;
for (i = 0; i < len; i++)
printf("%d ", num[i]);
printf("\n");
}
void sort(int *num, int len)
{
int i, j, tmp;
for (i = 0,j= len - 1;i <= j; i++)
{
if(num[i] % 2 == 0)
{
tmp = num[i];
num[i] = num[j];
num[j] = tmp;
i--;
j--;
}
print(num, 5);
}
}
int main(int argc, const char *argv[])
{
int num[5];
init(num, 5);
print(num, 5);
sort(num, 5);
print(num, 5);
return 0;
}
计算在一个子串在字符串中出现的次数,如”he”在”helloheo”出现了2次。(使用strstr()函数)。2.c
/**
* @file 2.c
* @brief 计算在一个子串在字符串中出现的次数,如”he”在”helloheo”出现了2次。(使用strstr()函数)
* @author GaoJinlong
* @version 0.1
* @date 2011-09-09
*/
#include <stdio.h>
#include <string.h>
int parse(char *str, char *substr)
{
int count = 0;
char *tmp;
while(*str)
{
if(tmp = strstr(str, substr))
{
count++;
str = tmp + strlen(substr);
}
else
break;
}
return count;
}
int main(int argc, const char *argv[])
{
char str[100];
char substr[20];
printf("Enter a string: ");
fgets(str, 100, stdin);
str[strlen(str) - 1] = '\0';
printf("Enter a substring: ");
fgets(substr, 20, stdin);
substr[strlen(substr) - 1] = '\0';
printf("%d %s in %s.\n", parse(str, substr), substr, str);
return 0;
}
将一个字符串以空格为分隔,分割为多个字符串,如str = “hello every body”,分割为str1 = hello; str2 = every; str3 = body。 every body3.c
/**
* @file 3.c
* @brief 将一个字符串以空格为分隔,分割为多个字符串,如str = “hello every
* body”,分割为str1 = hello; str2 = every; str3 = body
* @author GaoJinlong
* @version 0.1
* @date 2011-09-09
*/
#include <stdio.h>
#include <string.h>
int divide(char *str, char *store[])
{
int i = 0;
store[i++] = str;
while(*str)
{
if (*str == ' ')
{
*str = '\0';
store[i++] = str + 1;
}
str++;
}
return i;
}
int main(int argc, const char *argv[])
{
char str[100];
char *store[10];
int num, i;
fgets(str, 100, stdin);
str[strlen(str) - 1] = '\0';
num = divide(str, store);
for (i = 0; i < num; i++)
{
printf("%s\n", store[i]);
}
return 0;
}
编程实现int atoi(char *str),将函数实现将整数字符串转换为一个整数,如”-1234”转换为整数类型的-1234。4.c
/**
* @file 4.c
* @brief atoi
* @author GaoJinlong
* @version 0.1
* @date 2011-09-09
*/
#include <stdio.h>
int myatoi(char *str)
{
int flag = 0;
int num = 0;
if (*str == '-')
{
flag = 1;
str++;
}
while(*str)
{
num *= 10;
num += *str++ - '0';
}
if(flag)
num = -num;
return num;
}
int main(int argc, const char *argv[])
{
char buf[100];
scanf("%s", buf);
printf("%d\n", myatoi(buf));
j
return 0;
}