Problem A: 字符串类(I)

Problem A: 字符串类(I)

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 6383  Solved: 3131
[Submit][Status][Web Board]

Description

封装一个字符串类,用于存储字符串和处理的相关功能,支持以下操作:

1. STR::STR()构造方法:创建一个空的字符串对象。

2. STR::STR(const char *)构造方法:创建一个字符串对象,串的内容由参数给出。

3. STR::length()方法:返回字符串的长度。

4. STR::putline()方法:输出串的内容,并换行。

-----------------------------------------------------------------------------

你设计一个字符串类STR,使得main()函数能够正确运行。

函数调用格式见append.cc。

append.cc中已给出main()函数。

-----------------------------------------------------------------------------

Invalid Word(禁用单词)错误:“string”、“vector”等被禁用。

Input

输入有若干行,每行一个字符串。

Output

每组测试数据对应输出一行,包含两部分内容,首先是一个整数,表示输入串的长度,然后是输入的字符串,两者用一个空格分开。格式见sample。

Sample Input

A

123456789

Sample Output

0
12 Hello World!
1 A
9 123456789

  

HINT

Append Code

append.cc,

int main()
{
    STR e;
    STR h("Hello World!");
    char s[100001];
    cout << e.length() << " ";
    e.putline();
    cout << h.length() << " ";
    h.putline();
    while(gets(s) != NULL)
    {
        STR str(s);
        cout << str.length() << " ";
        str.putline();
    }
}

  

#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <cstdio>
using namespace std;
int getlength(const char *arr)
{
    int l=0;
    for(int i=0; arr[i]!=‘\0‘; i++)
        l++;
    return l;
}
void copystring(char *arr, const char *brr)
{
    int l=getlength(brr);
    for(int i=0; i<l; i++)
        arr[i]=brr[i];
        arr[l]=‘\0‘;
}
class STR
{
public :
    char *arr;
    int l;
    STR():arr(NULL),l(0){}
    STR(const char *brr)
    {
        l=getlength(brr);
        arr=new char[l+1];
        copystring(arr,brr);
    }
    int length()
    {
        return l;
    }
    void putline()
    {
        for(int i=0; i<l; i++)
            cout<<arr[i];
        cout<<endl;
    }
    ~STR()
    {
        delete []arr;
    }
};
int main()
{
    STR e;
    STR h("Hello World!");
    char s[100001];
    cout << e.length() << " ";
    e.putline();
    cout << h.length() << " ";
    h.putline();
    while(gets(s) != NULL)
    {
        STR str(s);
        cout << str.length() << " ";
        str.putline();
    }
}

  

原文地址:https://www.cnblogs.com/Jie-Fei/p/9126028.html

时间: 2024-08-03 02:33:07

Problem A: 字符串类(I)的相关文章

Problem B: 字符串类(II)

Problem B: 字符串类(II) Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 6103  Solved: 2687[Submit][Status][Web Board] Description 封装一个字符串类,用于存储字符串和处理的相关功能,支持以下操作: 1. STR::STR()构造方法:创建一个空的字符串对象. 2. STR::STR(const char *)构造方法:创建一个字符串对象,串的内容由参数给出. 3. STR::le

Python 的字符串类子串查找函数

Python 的字符串类有个很好用的函数,可很方便的用于与查找Python字符串类型对象子串相关的操作,具体的API如下: | find(...) | S.find(sub [,start [,end]]) -> int | | Return the lowest index in S where substring sub is found, | such that sub is contained within s[start:end]. Optional | arguments start

Sting 字符串类

一.字符串类String 字符串(string)是由字符构成的一个序列. 1. 构建一个字符串 //直接将字符串直接量看成String对象. String message = "Weclome to JAVA"; //使用字符数组 char[] charArray = { 'G', 'o', 'o', 'd', ' ', 'D', 'a', 'y'}; String message = new String(charArray); String变量存储的是对String对象的引用,St

字符串类的定义和字符串类对象的创建方式

String为字符串类. 其定义如下: public final class String 可以看出,String类是final类型的,是不可继承的.从源代码还可以看出,String从本质上说就是一个char类型的数组. 字符串类对象的声明有两种方式. 第一种,使用new关键字创建. String 变量名=new String("值"); 第二种,直接声明并初始化. String 变量名="值"; 我更喜欢第一种,标准的,所有类的对象的声明都通过  new 类的构造

实验11:Problem C: 分数类的乘法

Home Web Board ProblemSet Standing Status Statistics Problem C: 分数类的乘法 Problem C: 分数类的乘法 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 650  Solved: 477[Submit][Status][Web Board] Description 封装一个分数类Fract,用来处理分数功能和运算,支持以下操作: 1. 构造:传入两个参数n和m,表示n/m:分数在

(十)常用类库----数值类、字符串类

类库:包含一堆类的方法和常量,便于我们直接调用 (1)数值类Numeric 基类Numeric包含两个子类Integer(整数)和Float(浮点数) 其中Integer(整数)又可以分为两个子类Fixnum(普通整数)和Bignum(大整数) 记住整数和浮点数就行,普通整数和大整数则系统会自动转换 #类型转换puts 1.2.to_iputs 1puts 1.to_fputs "3.2gg".to_iputs "4.55sss".to_f puts 1.5.rou

为什么不用C++写游戏(这些工作,QT都替开发者解决了,C++没有根类导致太多的问题,也没有字符串类)

当今世界上绝大多数游戏都是C++写的,为什么要说不呢? 要做什么?写游戏. 写游戏首先要考虑些什么?做什么样的游戏,图形.音效.游戏逻辑如何实现. 用C++要先考虑什么?定义跨平台数据类型抽象,实现常用集合类,设计宏实现RTTI,写一个支持Unicode并可以和其他多种字符串类型互相转换的字符串类,自定义内存分配器,写个shared_ptr,组织预编译头文件,设计实现Object基类以处理跨DLL内存管理等问题…… 那么这些和做游戏有什么关系?不做好这些就很难开始写游戏. 做这些要话多少时间?很

关于c++中字符串类的一些描述

1 string 类的使用,要包含头文件 #include <string> 2 两个string类可以相加,但不能相减 比如说:string s1,s2,s3; s1="asd"; s2="qw"; s3=s1+s2 则s3="asdqw" s3=s2+s1 则s3="qwasd"; 3 两个字符串还可以比较大小 可以用< > == 使用if语句对2个字符串类直接进行比较 规则是这样的,先比较第一个字

实验11:Problem A: 分数类的输出

注意如果是负数,要把负号放在分子上 Home Web Board ProblemSet Standing Status Statistics Problem A: 分数类的输出 Problem A: 分数类的输出 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 1453  Solved: 574[Submit][Status][Web Board] Description 封装一个分数类Fract,用来处理分数功能和运算,支持以下操作: 1. 构造: