在主函数里面输入十个不等长的字符串,用函数对他们进行排序,并在主函数中进行输出。
#include<stdio.h>
#include<stdlib.h>
void swap(char (*p)[20],char (*q)[20]){
int i,temp,j;
for(i=0;i<9;i++){
for(j=i+1;j<10;j++){
if(strcmp(*(p+i),*(q+j))>1) {
temp=*(*(p+i));
*(*(p+i))=*(*(q+j));
*(*(q+j))=temp;
} }
}
return;
}
int main(){
char a[10][20];
int i,j;
printf("请输入十个字符串:\n");
for(i=0;i<10;i++){
scanf_s("%s",a,19);
}
swap(a,a);
printf("输出:\n");
for(i=0;i<10;i++){
for(j=0;a[i][j]!='\0';j++){
printf("%c",a[i][j]); }
printf("\n");
}
return 0;
}
运行的结果:
scanf_s("%s",a,19);
->
scanf_s("%s",a[i],19);
代码块:
方法1:
#include <stdio.h>
#include <string.h>
void reverse(char a[]); //定义反序函数
main()
{
char str[20];
gets(str); //输入一个字符串
reverse(str); //调用反序函数
puts(str); //输出反序后的字符串
return 0;
}
//反序函数
void reverse(char a[])
{
int i, j, k;
char t;
k=strlen(a);
for (i=0, j=k-1; i<k/2; i++, j--){
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
方法2:
#include <stdio.h>
#include <string.h>
void input(char st[]); //定义输入函数
void reverse(char st[]); //定义反序函数
int main()
{
char s[20];
input(s); //调用输入函数
printf("Original string: %s\n", s); //输出原字符串
reverse(s); //调用反序函数
printf("New string: %s\n", s); //输出反序后的字符串
return 0;
}
//输入函数
void input(char st[])
{
printf("Please enter string: ");
gets(st);
}
//反序函数
void reverse(char st[])
{
int n=strlen(st);
for (int i=0, j=n-1, t; i<(n/2); t=st[i], st[i]=st[j], st[j]=t, i++, j--);
}