作业
1.string函数的改写,不使用库函数实现string函数族的功能:strlen strcpy strcmp strcat
(1)strlen函数改写
#include <stdio.h>
int main(int argc, const char *argv[])
{
char arr[100];
int i,count=0;
printf("请输入字符串:");
gets(arr);
for(i=0;arr[i]!='\0';i++)
count++;
printf("%d\n",count);
return 0;
}
运行结果:
(2)strcpy函数改写
#include <stdio.h>
int main(int argc, const char *argv[])
{
char arr[100]="abcdf";
char tar[100]="tfgjdfgh";
int i;
for(i=0;arr[i]!='\0';i++)
{
tar[i]=arr[i];
}
tar[i]='\0';
printf("tar=%s",tar);
return 0;
}
运行结果
(3)strcmp函数改写
#include <stdio.h>
int main(int argc, const char *argv[])
{
char str1[100]="abcd";
char str2[100]="abcdef";
int i,res=0;
for(i=0;str1[i]!='\0'||str2[i]!='\0';i++)
{
res=str1[i]-str2[i];
if(res!=0)
{
break;
}
}
printf("res=%d\n",res);
return 0;
}
运行结果:
(4)strcat函数改写
#include <stdio.h>
int main(int argc, const char *argv[])
{
char str1[100]="abcdgoi";
char str2[100]="hello";
int i,k;
for(i=0;str1[i]!='\0';i++)
{
}
for(k=0,i=i;str2[k]!='\0';k++,i++)
{
str1[i]=str2[k];
}
str2[k]='\0';
printf("str1=%s",str1);
return 0;
}
运行结果:
2.从终端输入一个字符串,要求删除字符串中的空格字符。提示:可以新建一个辅助数组
#include <stdio.h>
int main(int argc, const char *argv[])
{
char arr[100];
printf("请输入一个字符串:");
char str[100];
gets(arr);
int i,j=0;
for(i=0;arr[i]!='\0';i++)
{
if(arr[i]!=' ')
{
str[j]=arr[i];
j++;
}
}
str[j]='\0';
printf("str=%s\n",str);
return 0;
}
运行结果
3.从终端获取一个字符串,要求将该字符串倒置存储。不允许使用辅助数组
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
printf("请输入一个字符串");
char str[100];
gets(str);
int i=0,j=strlen(str);
for(i=0,j;i<j;i++)
{
if(j>=0)
{
char k=str[i];
str[i]=str[j-1];
str[j-1]=k;
j--;
}
}
printf("%s\n",str);
return 0;
}
运行结果: