美文网首页
第六章 指针

第六章 指针

作者: Redcarp | 来源:发表于2019-11-07 22:12 被阅读0次

1.插入字符串
【问题描述】从键盘输入一个字符串,并在串中的第一次出现的最大元素后边插入字符串”ab”。
【输入形式】任意输入一个字符串
【输出形式】在串中的最大元素后边插入字符串”ab”
【样例输入】

123csCUMT

【样例输出】

123csabCUMT

【样例说明】为了保证输入的字符串有空格,请使用cin.getline(char* , int);不要使用gets,本系统不支持。只插入一次ab。
【评分标准】提交源文件“6-3.cpp”。

#include<iostream>
#define x 20
using namespace std;
int main()
{
    char r[x+2]={'\0'};
    char s[x]={'\0'};//利用cin.getline()函数从键盘录入一句英文,其中每个单词之间用一个空格隔开,最后用'.'
    cin.getline(s,x);//cin.getline(接收字符串的变量,接收字符个数,结束字符【默认为'\0'】)
    //char *p=s;
    char max=s[0];
    int i,j,k;
    for(i=0;i<x;i++)
    {
        if(s[i]>max)
        {
            max=s[i];
            j=i;
        }
    }
    //cout<<j<<endl;局部验证正确 
    for(k=0;k<=j;k++)
    {
        r[k]=s[k];
        //cout<<r[k];
    }
    r[j+1]='a';
    //cout<<r[j+1];
    r[j+2]='b';
    //cout<<r[j+2];
    for(k=j+3;k<=x+2&&s[k-2]!='\0';k++)
    {
        r[k]=s[k-2];
        //cout<<r[k];
    }
    
    for(i=0;i<x+3;i++) 
    {
        if(r[i]!='\0')
        cout<<r[i];
    }
    /*
    for(i=0;i<x+3;i++)为什么不能这么输出呢?好吧,他现在又能了,aaaaaa~ 
    {
        if(r[i]!='\0')
        cout<<r[i];
    }
    */  
    return 0;
}

2.统计整数个数
【问题描述】输入一个字符串,其包括数字和非数字字符,如:a123x456 17935? 098tab,将其中连续的数字作为一个整数,依次存放到数组a中,统计共有多少个整数,并输出这些数。
【输入形式】数字和非数字字符的字符串
【输出形式】1)整数个数2)分别输出整数
【样例输入】

a123x456 17935? 098tab583
【注意需要保留带有空格的字符串,请不要使用gets,cin,练习使用cin.getline(char *str, int maxnum)】

【样例输出】

                5
                123
                456
                17935
                98
                583

【样例说明】第一个输出项为整数的个数,后面的分别为具体的整数。注意,不需要输出提示类文字,如:“整数为”,“分别为”等字样。直接输出结果。有一个数字的也要输出。测试用例中没有超过整数范围连续数字。当遇到0开头的数字应舍去0。
【评分标准】提交文件名6-5.cpp。

#include<iostream>
#define x 50
using namespace std;
int main() 
{
    char a[x];//本来想用指针*p=a,但没用上 
    cin.getline(a,x);
    int i,j=0;
    for(i=0;i<x;i++)//计算连续是整数的个数j,2个for循环基本相同 
    {
        if(a[i]>48&&a[i]<58)
        {   
            if(a[i+1]<=48||a[i+1]>=58)
            {
                j++;
            }   
        }
    }
    cout<<j<<endl;
    for(i=0;i<x;i++)//输出连续的整数,2个for循环基本相同  
    {
        if(a[i]>48&&a[i]<58)
        {   
            cout<<a[i];
            if(a[i+1]<=48||a[i+1]>=58)
            {
                cout<<endl;
            }   
        }
    }
    return 0;
}

3.字符串排序
【问题描述】有5个字符串,首先将它们按照字符串中字符个数由小到大排序,再分别取出每个字符串的第三个字母合并成一个新的字符串输出(若少于三个字符的输出空格)。要求:利用字符串指针和指针数组实现。
【输入形式】5个字符串,用回车分隔
【输出形式】输出一个字符串:按5个字符串中字符个数由小到大排序,再分别取出每个字符串的第三个字母合并成一个新的字符串输出,若少于三个字符的输出空格
【样例输入】

            test1234
            123test
            cumt
            think
            apples

【样例输出】

                 cumt think apples 123test test1234
                 concatenate string:mip3s

【样例说明】输出每个字符串之间用一个空格。字符数量相等的串相对顺序不变。
【评分标准】提交文件名6-7.cpp。

#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
void sort(int len[]);
struct yigezifuchuan//结构体中为1个字符串,共5个,每个字符串都具有以下2个属性,字符串内容,字符串长度 
{
    char str[50];
    int len; 
}a[5];
int main() 
{
    int i,j;
    for(i=0;i<5;i++)
    {
        cin>>a[i].str;
        a[i].len=strlen(a[i].str);
    }   
    for(i=0;i<4;i++)//共进行4趟比较,不是5次,比原始数据少一次 
    {
        for(j=0;j<4;j++)//在每趟中要进行(4-i)次两两比较,不是(5-i)次两两比较
        {
            if(a[j].len>a[j+1].len)//如果前面的字符串长度大于后面的字符串长度,则交换字符串
            {
                swap(a[j],a[j+1]);//不是交换swap(a[j].str,a[j+1].str),而是交换整个结构体 
            }           
        }   
    }
    for(i=0;i<5;i++)
    {
        cout<<a[i].str<<" ";
    }
    cout<<endl;
    cout<<"concatenate string:";
    for(int i=0;i<5;i++)
    {
        if(a[i].str[2]=='\0')
        {
            cout<<' ';
        }
        else 
        {
            cout<<a[i].str[2];
        }
    }
    return 0;
}

相关文章

  • 11-23

    经历 看《c和指针》中的第六章指针部分 现代通信原理上课 组织实验室第一次update 学到 不能简单的通过检查一...

  • 第六章 指针

    1.插入字符串【问题描述】从键盘输入一个字符串,并在串中的第一次出现的最大元素后边插入字符串”ab”。【输入形式】...

  • <>

    第六章重点: go语言数据类型:基础类型(数字,字符串,布尔类型),复合类型(数组,结构体),引用类型(指针,切片...

  • 混淆知识点

    1、指针数组&数组指针、常量指针&指针常量、函数指针&指针函数 数组指针&指针数组 数组指针的定义 int (*p...

  • C语言

    C 指针、指针变量、函数指针、指针函数、指针数组、数组指针、C 数组

  • 指针

    普通指针指针的指针 数组指针 函数指针

  • 函数指针

    概念: 指针函数, 函数指针, 指针数组, 数组指针, 指向数组的指针, 指向函数指针数组的指针。

  • 《岳响河》目录 第六章

    第六章1 第六章2 第六章3 第六章4 第六章5 第六章6 第六章7 第六章8 第六章9 第六章10 第六章11 ...

  • C:函数指针的坑

    关于该死的函数指针和指针函数 先来个目录 常量指针、指针常量 数组指针、指针数组 函数指针、指针函数 1、先看第一...

  • C 语言指针

    指针类型:指针的读取长度,指针的读取方向(大小端) 空指针,无类型指针,野指针 常量指针,指向常量的指针 http...

网友评论

      本文标题:第六章 指针

      本文链接:https://www.haomeiwen.com/subject/tqjbbctx.html