字符串逆序
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void string_reverse(const char *ptr, char *str)
{
int len = strlen(ptr), i;
ptr += (len - 1);
for (i = 0; i < len; i++)
{
*str = *ptr;
str++;
ptr--;
}
}
int main()
{
char *ptr = "helloworld!"; //ptr指向helloworld字符串 helloworld是常量,不能修改
char *str = (char *)malloc(sizeof(char) * 64);
string_reverse(ptr, str);
printf("%s\n", str); //打印字符串格式 %s, 参数是字符串的首地址
return 0;
}
进制转换
#include <stdio.h>
void to_change(int num,int n);
int main()
{
int num,n;
printf("Please enter a number to change:");
scanf("%d",&num);
printf("请输入要转换的进制(如2或8,16等):");
scanf("%d",&n);
to_change(num,n);
printf("\n");
return 0;
}
void to_change(int num,int n) //利用递归函数的实现反序输出
{
int r;
r = num % n;
if(num > 0)
to_change( num / n,n );
putchar( '0' + r);
return ;
}
计算字符串字串出现出现次数
#include <stdio.h>
#include <string.h>
int main()
{
char a[100];
printf("请输入字符串\n");
scanf("%s",a);
char * c = a;
char b[10];
printf("请输入子串\n");
scanf("%s",b);
char * d = b;
int n;
int num = 0;
n = strlen(d);
while(strlen(c) > 0)
{
if(strncmp(c,d,n) == 0)
{
num++;
c += n;
}
else
{
c++;
}
}
printf("%d\n",num);
return 0;
}
- 题目:输入5个数(含负数、小数)将它们按由小到大的顺序排列起来
提示:需要排数的数字通过参数传递进来,例如:输入:./a.out -1 2.1 -3 5 7 输出: -3 -1 2.1 5 7
#include <stdio.h>
int main()
{
float a[5];
int i,j;
float temp;
printf("please input 5 numbers: ");
for(i = 0;i < 5; i++)
{
scanf("%f",&a[i]);
}
for(i = 0;i < 5;i++)
{
for(j = i+1;j < 5;j++)
{
if(a[j] < a[i])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
printf("the result is:\n");
for(i = 0;i < 5;i++)
{
printf("%g ",a[i]);
}
printf("\n");
return 0;
}