首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++中的strchr在哪里?

C++中的strchr在哪里?
EN

Stack Overflow用户
提问于 2014-08-07 09:05:56
回答 3查看 3.7K关注 0票数 2

我知道strchr<string>。但是uva10082给了CE:

代码语言:javascript
复制
code.cpp: In function ‘int main()’:
code.cpp:6:13: warning: unknown escape sequence: '\A'
char x[] = "`1234567890-=QWERTYUIOP[]\ASDFGHJKL;'ZXCVBNM,./";          ^
code.cpp:11:24: error: ‘strchr’ was not declared in this scope
p = strchr(x, char(c));

下面是我的代码:(使用c++11编译)

代码语言:javascript
复制
#include<iostream>
#include<string>
using namespace std;
int main()
{
    char x[] = "`1234567890-=QWERTYUIOP[]\ASDFGHJKL;'ZXCVBNM,./";
    int c;
    char* p = NULL;
    while ((c = getchar()) != EOF)
    {
        p =strchr(x,char(c));
        if (p)
            cout << *(p-1);
        else
            cout << char(c);
    }
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-08-07 09:09:15

代码语言:javascript
复制
#include <cstring>  // contains strchr

而且,没有必要将第二个参数转换为char,因为strchr在那里使用int

票数 7
EN

Stack Overflow用户

发布于 2014-08-07 09:09:31

你需要

代码语言:javascript
复制
#include<cstring>

拥有strchr()。另外,对于getchar()EOF,您需要

代码语言:javascript
复制
#include<cstdio>

注意,<string>库包含例如std::string类,而<cstring>包含C字符串函数,如strchr()strcat()等等。

因此,您关于strchr()<string>库中的声明是不正确的。

票数 2
EN

Stack Overflow用户

发布于 2014-08-07 09:08:36

我猜std::strchr#include <cstring>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25178409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档