数组倒序
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
char *str[4];
char *ptr = "I am from shanghai";
int i, j;
for(i = 0; i < 4; i++)
{
str[i] = (char*)malloc(sizeof(char) * 20);
}
for(i = 0; i < 4; i++)
{
ptr++;
for(j = 0; j < 20; j++)
{
if(*(ptr - 1) == ' ' || *(ptr - 1) == '\0')
{
break;
}
strncat(str[i] ,ptr - 1, 1);
ptr++;
}
}
for(i = 3; i >= 0; i--)
{
printf(" %s", str[i]);
}
printf("\n");
return 0;
}
验证字符
int main()
{
char str[30] = {0};
char a[30] = {0};
char b[30] = {0};
printf("请输入一个字符串, 針头和针尾:\n");
scanf("%s%s%s", str, a, b);
char *ptr = str;
char *a1 = a;
char *b1 = b;
char *a2 = NULL;
int len_a, len_b, i;
len_a = strlen(a);
len_b = strlen(b);
while(*ptr != '\0')
{
if(strncmp(ptr, a1, len_a) == 0)
{
a2 = ptr;
while(*a2 != '\0')
{
if(strncmp(a2, b1, len_b) == 0)
{
int sum = a2 - ptr + len_b;
for(i = 0; i < sum; i++)
{
printf("%c", *ptr);
ptr++;
}
}
a2++;
}
}
ptr++;
}
printf("\n");
return 0;
}
数组指针排序(冒泡排序)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void fun(char **str);
int main()
{
char *str[4];
int i;
str[0] = malloc(sizeof(char) * 10);
str[1] = malloc(sizeof(char) * 10);
str[2] = malloc(sizeof(char) * 10);
str[3] = malloc(sizeof(char) * 10);
printf("请输入四个字符串:\n");
for(i = 0; i < 4; i++)
{
scanf("%s",str[i]);
}
fun(str);
/*float a[5]={0};
int i;
int len=sizeof(a)/sizeof(a[0]);
printf("please input 5 numbers:\n");
for(i=0;i<len;i++)
{
scanf("%f",&a[i]);
}
fun(a,len);*/
return 0;
}
void fun(char **str)
{
int i,j;
char *tmp;
for(i = 0; i < 3; i++)
for(j = 0; j < 3 - i; j++)
{
if(strcmp(str[j], str[j+1]) < 0)
{
tmp = str[j];
str[j] = str[j+1];
str[j+1] = tmp;
}
}
for(i=0;i<4;i++)
printf("%s ",str[i]);
printf("\n");
}