Trim函数实验报告(大学生)

简介: Trim函数实验报告(大学生)

一、实验目的


构建trim函数实现对字符串尾部的空格符、制表符与换行符的删除。

同时训练break用法和意义


二、实验内容


1.构建trim函数(有库、无库)

2.构建main函数

3.修改程序


三、实验环境


基于macOS Big Sur版本11.1的Xcode编译器

MacBook Pro (16-inch, 2019)

处理器2.6GHz六核Intel Core i7

内存16GB 2667MHz DDR4

图形卡Intel UHD Graphics 630 1536 MB


四、操作方法和实验步骤


构建trim函数(有库、无库)


 /*不使用库函数*/
int trim(char s[])
{
   /*函数中用到的变量,必须在一开始一次性全部声明*/
   int n = 0;
   int i;
   while(s[n++]!='\0')
   ;
   /*   while(s[n++]!='\0')
        ;
    等价于 while(s[n]!='\0')
           n++;
  */
   for(i=n-2;i>=0;i--)
   {
      if((s[i]==' ')||(s[i]=='\t')||(s[i]=='\n'))
    s[i] = '\0';
    else
    break;
   }
   return i;
}
/*使用string.h中的库函数*/
int Trim(char s[])
{
   int n;
   for(n = strlen(s) - 1; n >= 0; n--)
   {
      if(s[n]!=' ' && s[n]!='\t' && s[n]!='\n')
    break;
    s[n+1] = '\0';
   }
   return n;
}


五、程序具体实现


 #include <stdio.h>
#include <string.h>
//trim:remove trailing blacks, tabs, newlines
int trim(char s[]);
int Trim(char s[]);
int main()
{
   char a[] = "hello world! ";
   int leng = trim(a);
   printf("The length is %d, %s@@\n",leng, a);
   printf("There are \"%d\" real characters left\n",Trim(a));
   printf("%s",a);
}
/*不使用库函数*/
int trim(char s[])
{
   /*函数中用到的变量,必须在一开始一次性全部声明*/
   int n = 0;
   int i;
   while(s[n++]!='\0')
   ;
   /*   while(s[n++]!='\0')
        ;
    等价于 while(s[n]!='\0')
           n++;
  */
   for(i=n-2;i>=0;i--)
   {
      if((s[i]==' ')||(s[i]=='\t')||(s[i]=='\n'))
    s[i] = '\0';
    else
    break;
   }
   return i;
}
/*使用string.h中的库函数*/
int Trim(char s[])
{
   int n;
   for(n = strlen(s) - 1; n >= 0; n--)
   {
      if(s[n]!=' ' && s[n]!='\t' && s[n]!='\n')
    break;
    s[n+1] = '\0';
   }
   return n;
}


六、测试结果及讨论


image.png


七、实验心得


知道通过调用函数库解决实际问题,同时掌握不调用函数库解决实际问题。


相关文章
|
6月前
|
C++
【期末不挂科-C++考前速过系列P6】大二C++实验作业-模板(4道代码题)【解析,注释】
【期末不挂科-C++考前速过系列P6】大二C++实验作业-模板(4道代码题)【解析,注释】
【期末不挂科-C++考前速过系列P6】大二C++实验作业-模板(4道代码题)【解析,注释】
|
6月前
|
Serverless C++ 容器
【期末不挂科-C++考前速过系列P5】大二C++实验作业-多态性(3道代码题)【解析,注释】
【期末不挂科-C++考前速过系列P5】大二C++实验作业-多态性(3道代码题)【解析,注释】
|
6月前
|
编译器 C++
【期末不挂科-C++考前速过系列P3】大二C++第3次过程考核(20道选择题&12道判断题&2道代码题)【解析,注释】
【期末不挂科-C++考前速过系列P3】大二C++第3次过程考核(20道选择题&12道判断题&2道代码题)【解析,注释】
|
6月前
|
C++ 芯片
【期末不挂科-C++考前速过系列P4】大二C++实验作业-继承和派生(3道代码题)【解析,注释】
【期末不挂科-C++考前速过系列P4】大二C++实验作业-继承和派生(3道代码题)【解析,注释】
|
6月前
|
C++
【期末不挂科-C++考前速过系列P2】大二C++第2次过程考核(20道选择题&10道判断题&3道代码题)【解析,注释】
【期末不挂科-C++考前速过系列P2】大二C++第2次过程考核(20道选择题&10道判断题&3道代码题)【解析,注释】
|
6月前
|
存储 数据安全/隐私保护 C++
【期末不挂科-C++考前速过系列P1】大二C++第1次过程考核(3道简述题&7道代码题)【解析,注释】
【期末不挂科-C++考前速过系列P1】大二C++第1次过程考核(3道简述题&7道代码题)【解析,注释】
|
存储 C++
[自考]C++中一些特殊用法
[自考]C++中一些特殊用法
78 0
|
Java
第五期:字符串的一些有意思的操作
第五期:字符串的一些有意思的操作
91 0
高职考技能提升教程004期 字符串查找与替换 高考信息技术必备 刘金玉编程
高职考技能提升教程004期 字符串查找与替换 高考信息技术必备 刘金玉编程
|
数据采集 存储 网络协议
自学python如何找到好的老师
如何找到好的python老师