C++ String转为Char数组

我遇到的题目

【问题描述】编写程序,输入字符串,统计英文字母、数字字符及其他字符的个数。

【输入形式】一个字符串

【输出形式】三个数,之间用空格隔开

【样例输入】abc129++*ABC

【样例输出】6 3 3

【样例说明】字符串“abc129++*ABC”中英文字母的个数是6,数字字符的个数是3,其他字符的个数是3。

我的想法

  1. 输入一个String的字符串,用String.Size()获取其长度,然后在内存中定义数组。
  2. 将字符串里每个字符通过内存分配的方式转换为char的数组

解决方法

此处遇到了一个问题:如何将String转换为char的数组?

string word;
cin >> word;
int n = word.size();
char* a = new char[n]; //在内存中定义数组
strcpy(a, word.c_str()); //将string转化为char的数组

成功实现
完整版代码:

#include <iostream>
#include <string>
using namespace std;
int main()
{
    string word;
    cin >> word;
    int n = word.size();
    char* a = new char[n]; //在内存中定义数组
    strcpy(a, word.c_str()); //将string转化为char的数组
    int alpha = 0, math = 0, other = 0;
    for (int i = 0; i < n; i++)
    {
        if (a[i] >= '0' && a[i] <= '9')
        {
            math += 1;
        }
        else {
            if ((a[i] >= 'a' && a[i] <= 'z')||(a[i]>='A'&&a[i]<='Z'))
            {
                alpha += 1;
            }
            else {
                other += 1;
            }
        }
    }
    cout << alpha << " " << math << " " << other;
}

在本地环境(VS2019)运行正常,然而学校的批改系统提示:

编译错误.
_1.cpp: In function 'int main()':
_1.cpp:10:24: error: 'strcpy' was not declared in this scope
strcpy(a, word.c_str());
^

百度后发现

在c++中,是指标准化以前的标准c库中的字char*字符串处理函数
中在1988年标准化以后,c++中含的STL的string容器
是在1988年标准化以后,的演变。
总之记住一句话:是完全不同的两个东西。

#include <string>
改为
#include <string.h>
后正常

评论

  1. 头像
    enjoy
    Android Chrome 71.0.3578.141
    1年前
    2019-11-18 7:04:07

    test

    • 头像
      米娅(2525)
      Android Chrome 71.0.3578.141
      1年前
      2019-11-29 7:31:13

      憨憨666

  2. 头像
    司令
    Android Chrome 66.0.3359.126
    1年前
    2019-11-26 12:26:49

    过来踩踩

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇