简单字符串与指针
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void Memoryinit(char **str)
{
*str = (char *)malloc(sizeof(char)*64);
}
int main()
{
char *ptr = NULL;
Memoryinit(&ptr);
strcpy(ptr,"hello");
printf("%s\n",ptr);
return 0;
}
指针字符串倒序输出
#include<stdio.h>
#include<string.h>
int greater(int x,int y)
{
return (x < y)? 1 : 0;
}
void sr(int a[],int l)
{
int i;
for(i=0;i<l;i++)
{
scanf("%d",&a[i]);
}
}
void change(char *a[],int l )
{
int i,j;
char *tmp;
for(i=1;i<=l-1;i++)
{
for(j=1;j<=l-i-1;j++)
{
//if(a[j+1]<a[j])
if(strcmp(a[j+1],a[j]) > 0)
{
tmp=a[j+1];
a[j+1]=a[j];
a[j]=tmp;
}
}
}
}
void shuchu(char *a[],int l)
{
int i;
for(i=1;i<l;i++)
{
printf("%s ",a[i]);
}
printf("\n");
}
int main(int argc,char *argv[])
{
int i, j, tmp;
// int a[10];
printf("please input :\n");
int l= argc;
// sr(a,l);
change(argv,l);
shuchu(argv,l);
return 0;
}
指针的冒泡排序
#include <stdio.h>
int greater(int x, int y)
{
return (x > y) ? 1 : 0;
}
int less(int x, int y)
{
return (x < y) ? 1 : 0;
}
void GetArray(int a[], int length)
{
int i;
printf("Please input:\n");
for (i = 0; i < length; i++)
{
scanf("%d", &a[i]);
}
}
void sort(int a[], int length, int (*p)(int, int))
{
int i, j, tmp;
for (i = 0; i < length - 1; i++)
{
for (j = 0; j < length - i - 1; j++)
{
//if (a[j + 1] < a[j])
if (p(a[j + 1], a[j]))
{
tmp = a[j + 1];
a[j + 1] = a[j];
a[j] = tmp;
}
}
}
}
void print(int a[], int length)
{
int i;
for (i = 0; i < length; i++)
{
printf("%d ", a[i]);
}
printf("\n");
}
int main()
{
int i, j, tmp;
int a[10] = {0};
int length = sizeof(a) / sizeof(a[0]);
GetArray(a, length);
sort(a, length, greater);
print(a, length);
return 0;
}
编写一个C函数,将”I am from shanghai ”倒置为”shanghai from am I”,即将句子中的单词位置倒置,而不改变单词内部结构
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
int i = 0;
char *str ,*ptr;
str = (char *)malloc(sizeof(char)*1024);
char ch;
ptr = str;
printf("please input:\n");
while((ch = getchar()) != '\n')
{
*(str + i) = ch;
i++;
}
while(*str != '\0')
{
if(*str == ' ')
{
*str = '\0';
}
str++;
}
while(str != ptr)
{
str--;
if(*str == '\0')
{
printf("%s ",str + 1);
}
}
printf("%s\n",str);
return 0;
}