1.自定义函数实现对数组的排序
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void Input(int str[20],int m);
void Bubble(int str[20],int m);
void Output(int str[20],int m);
int main(int argc, const char *argv[])
{
int m=0;
int str[m];
printf("请输入数组的个数");
scanf("%d",&m);
Input(str,m);
Bubble(str,m);
printf("排序后:");
Output(str,m);
return 0;
}
void Input(int str[20],int m)
{
for(int i=0;i<m;i++)
{
scanf("%d",&str[i]);
}
}
void Bubble(int str[20],int m)
{
int i=0,j=0;
for(i=1;i<m-1;i++)
{
for(j=0;j<m-1;j++)
{
if(str[j]>str[j+1])
{
int t=str[j];
str[j]=str[j+1];
str[j+1]=t;
}
}
}
}
void Output(int str[20],int m)
{
for(int i=0;i<m;i++)
{
printf("%d\t",str[i]);
}
}
2.非函数实现字符串的比较
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int My_strcmp(char s1[],char s2[]);
int main(int argc, const char *argv[])
{
char s1[50]="";
char s2[50]="";
printf("输入2个字符串");
scanf("%s%s",s1,s2);
My_strcmp(s1,s2);
return 0;
}
int My_strcmp(char s1[50],char s2[50])
{
int i=0,j=0;
while(s1[i]==s2[j])
{
if(s1[i]=='\0')
break;
i++;
j++;
}
int dev=s1[i]-s2[i];
printf("差值为%d\n",dev);
return 0;
}
3.非函数实现拷贝
#include <stdio.h> #include <stdlib.h> #include <string.h> void My_strcpy(char dest[],char src[]); int main(int argc, const char *argv[]) { char s1[50]=""; char s2[50]=""; printf("请输入两个字符串:"); scanf("%s%s",s1,s2); My_strcpy(s1,s2); return 0; } void My_strcpy(char dest[50],char src[50]) { int i; for(i=0;src[i];i++) { dest[i]=src[i]; } dest[i]='\0'; printf("s1的值为%s\n",dest); }
4.非函数实现字符串的连接
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void My_strcat(char dest[],char src[]);
int main(int argc, const char *argv[])
{
char s1[50];
char s2[50];
printf("请输入两个字符串:");
scanf("%s%s",s1,s2);
My_strcat(s1,s2);
return 0;
}
void My_strcat(char dest[50],char src[50])
{
int i,j;
for(i=0;dest[i];i++);
for(j=0;src[j];j++)
{
dest[i++]=src[j];
}
dest[i++]='\0';
printf("链接后:%s\n",dest);
}
5.在自定义函数中实现字符串的逆置,并输出
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void My_strrev(char str[]);
int main(int argc, const char *argv[])
{
char str[50]="";
printf("请输入一个字符串");
gets(str);
int i,j;
My_strrev(str);
return 0;
}
void My_strrev(char str[50])
{
//整体逆置
int i=0,j=strlen(str)-1;
while(i<j)
{
char t=str[i];
str[i]=str[j];
str[j]=t;
i++;j--;
}
puts(str);
//对每个单词进行逆置
i=0;j=0;
for(i=0;i<strlen(str);)
{
//循环不是空格
while(str[j]!=' '&&str[j]!='\0')
j++;
int k=j-1;
//
while(i<k)
{
char t=str[i];
str[i]=str[k];
str[k]=t;
i++;
k--;
}
while(str[j]==' ')
{
j++;
}
i=j;
}
puts(str);
}