C++指针数组,二级指针和函数指针的练习

  • 1.编一程序,将字符串“Hello,C++!”赋给一个字符数组, 然后从第一个字母开始间隔地输出该串(请用指针完成)。
  • 代码如下
#include<iostream>
#include<string>
using namespace std;
int main() {
    const char str[] = "Hello,C++!";
    const char *p = str;
    while ((*p) != '\0') 
        cout << *p++ << " ";
        cout << endl;
    return 0;
}
  • 测试截图
  • 2.编写一个函数,用于去掉字符串尾部的空格符。 函数原型为:char *mytrim(char *string); 其中参数string为字符串,返回值为指向string的指针。
  • 代码如下:
#include<iostream>
#include<string>
#include<cstdio>
using namespace std;
char *mytrim(char *string) {
    char *p = string;
    int c1 = 0, c2 = 0;
    while ((*p++) != '\0')
        c1++;
    cout << "The original length of the string is:" << c1 << endl;
    for (int i = c1 - 1; string[i] == ' '; i--)   //Reverse Search for spaces
        c2++;
    *(string + (c1- c2)) = '\0';
    cout << "The string is now long:" << c2 << endl;
    return string;
}
int main() {
    char str[] = "Hello,C++!         ";
    cout << "The original string is:";
    printf("%s\n",str);
    cout << mytrim(str) << endl;    
    return 0;
}
  • 测试截图
  • 3.编写一个函数,用于去掉字符串前面的空格。 函数原型为:char *myltrim(char *string); 其中参数string为字符串,返回值为指向string的指针。
  • 代码如下
#include<iostream>
#include<string>
#include<cstdio>
using namespace std;
char *mytrim(char *string) {
    char *p = string;
    int c1 = 0, c2 = 0;
    while ((*p++) != '\0')
        c1++;
    cout << "The original length of the string is:" << c1 << endl;
    for (int i = 0; string[i] == ' '; i++)   //Find spaces from Start
        c2++;
    for (int i = 0; i < c2; i++)
        string[i] = string[i + c2];
    *(string + (c1 - c2)) = '\0';
    cout << "The string is now long:" << c2 << endl;
    return string;
}
int main() {
    char str[] = "          Hello,C++!";
    cout << "The original string is:";
    printf("%s\n", str);
    cout << mytrim(str) << endl;
    return 0;
}
  • 测试截图

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java一日一条

Java虚拟机体系结构,你知道吗?

众所周知,Java支持平台无关性、安全性和网络移动性。而Java平台由Java虚拟机和Java核心类所构成,它为纯Java程序提供了统一的编程接口,而不管下层操...

8420
来自专栏魂祭心

原 yield用法分析

37670
来自专栏python3

习题18:命名,变量,代码,函数

1. 首先告诉python创建一个函数,使用的命令是def,也就是定义(define)的意思

8620
来自专栏xingoo, 一个梦想做发明家的程序员

数字按照不同格式转换成字符串

  如果自己写函数,不使用itoa怎么判断呢?   我们用通常的办法,对数字进行每位的除商,得到后与字符'0'相加。 flag = 0; ...

213100
来自专栏微信公众号:Java团长

Java虚拟机体系结构

  众所周知,Java支持平台无关性、安全性和网络移动性。而Java平台由Java虚拟机和Java核心类所构成,它为纯Java程序提供了统一的编程接口,而不管下...

12720
来自专栏Python入门

30个Python程序员需要知道的编程技巧,可以让你的工作事半功倍!

在上面代码中,赋值的右侧形成了一个新元组,而左侧则立刻将该(未被引用的)元组解包到名称<a>和<b>。

7700
来自专栏静默虚空的博客

Shell 快速指南

Shell 快速指南 ███████╗██╗ ██╗███████╗██╗ ██╗ ██╔═══...

286100
来自专栏青玉伏案

窥探Swift编程之错误处理与异常抛出

在Swift 2.0版本中,Swift语言对其错误处理进行了新的设计,当然了,重新设计后的结果使得该错误处理系统用起来更爽。今天博客的主题就是系统的搞一下Swi...

20750
来自专栏程序员的SOD蜜

实例探究字符编码:unicode,utf-8,default,gb2312 的区别

 最近做邮件收发,不同的邮件系统间可能会出现编码问题,迫使我重新回来研究一下字符的编码问题,unicode,utf-8,gb2312这些编码格式都是我们熟知的,...

250100
来自专栏JetpropelledSnake

Python面试题之Python反射机制

 我们要导入另外一个模块,可以使用import.现在有这样的需求,我动态输入一个模块名,可以随时访问到导入模块中的方法或者变量,怎么做呢?

35720

扫码关注云+社区

领取腾讯云代金券