我知道strchr
位于<string>
。
但 uva10082 给了CE:
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编译)
#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);
}
}
答案 0 :(得分:6)
#include <cstring> // contains strchr
另外,没有必要将第二个参数转换为char
,因为strchr
需要int
答案 1 :(得分:2)
你需要
#include<cstring>
拥有strchr()
。另外,对于getchar()
和EOF
,您需要
#include<cstdio>
请注意,<string>
库包含例如std::string
类,而<cstring>
包含C字符串函数,如strchr()
,strcat()
等。
所以,strchr()
在<string>
lib中的陈述不正确。
答案 2 :(得分:1)
我猜std::strchr
位于#include <cstring>