1,实现字符串逆置
例如:char a[]="hello my student"
输出:student my hello
#include<stdio.h>
#include<string.h>
int main()
{
char a[]="hello my student";
strrev(a);
int i=0,k,j=0;
char temp;
while(a[i]!='\0')
{
while(a[j]!=' '&&a[j]!='\0')
{
j++;
}
k=j-1;
while(i<k)
{
temp=a[i];
a[i]=a[k];
a[k]=temp;
i++;
k--;
}
while(a[j]==' ')
{
j++;
}
i=j;
}
puts(a);
return 0;
}
结果为:
2.不使用字符库函数方法实现字符串比较
#include<stdio.h>
#include<string.h>
int main()
{
int my_strlen(char* str);
int my_strcmp(char* str1 ,char* str2);
char str1[10]="fjdskal";
char str2[10]="fdhskja";
if(my_strcmp(str1,str2)>0)
printf("字符串%s大\n",str1);
else if(my_strcmp(str1,str2)==0)
printf("两个字符串一样\n");
else
printf("字符串%s大\n",str2);
return 0;
}
int my_strlen(char* str)
{
int i,k=0,m=0;
for(i=0;str[i]!='\0';i++)
{
k++;
}
return k;
}
int my_strcmp(char* str1 ,char* str2)
{
int i,t;
for(i=0;i<=my_strlen(str1);i++)
{
if(str1[i]==str2[i])
t=0;
else if(str1[i]!=str2[i])
{
t=str1[i]-str2[i];
break;
}
}
return t;
}
结果为:
3.不使用字符库函数方法实现字符串连接
#include<stdio.h>
#include<string.h>
int main()
{
char* my_strcat(char* str1,const char* str2);
char str1[]="ddfasf";
char str2[]="xxxx";
printf("连接后字符串为:%s\n",my_strcat(str1,str2));
return 0;
}
char* my_strcat(char* str1,const char* str2)
{
int i,j=0;
int k=0,m=0;
for(i=0;str1[i]!='\0';i++)
{
k++;
}
for(i=0;str2[i]!='\0';i++)
{
m++;
}
for(i=k;i<=k+m;i++)
{
str1[i]=str2[j];
j++;
}
return str1;
}
结果为:
4.打印m行的杨辉三角
#include<stdio.h>
int main()
{
int m=5;
printf("请输入打印m行的杨辉三角\nm= ");
scanf("%d",&m);
int arr[m][m];
int i,j;
for(i=0;i<m;i++)
{
for(j=0;j<=i;j++)
{
if(j==0||i==j)
{
arr[i][j]=1;
}
if(i>=2)
arr[i][j+1]=arr[i-1][j]+arr[i-1][j+1];
}
}
for(i=0;i<m;i++)
{
for(j=0;j<m-i;j++)
{
printf(" ");
}
for(j=0;j<=i;j++)
{
printf("%3d ",arr[i][j]);
}
printf("\n");
}
printf("\n");
return 0;
}
结果为: