ispunct() Function in C++
ispunct() Function in C++
char punct(char a[], int len) {
for (int i = 0; i < len; i++) {
if (ispunct(a[i]))
{ return i; }
return -1;
}
}
谁能告诉我为什么这个函数只为我交给它的每个字符串返回 -1?我正在编写一个程序来从.txt文件中获取单词并将它们输出(稍作改动)到不同的.txt文件中,我需要从字符串中删除标点符号。但是,我似乎无法使用ispunct()函数检测到标点符号的位置。我什至使用我能想象到的所有标点符号情况编写了自己的函数,它仍然只返回 -1。是这里的函数有问题还是我给它的字符串有问题?如果需要显示更多我的代码,请告诉我。谢谢!
这是因为如果ispunct(a[0])
返回false
,则调用return -1
。
您应该将默认返回移到循环之外:
char punct(char a[], int len) {
for (int i = 0; i < len; i++) {
if (ispunct(a[i]))
{ return i; }
}
return -1;
}
请注意,此函数仅返回第一个标点索引,而不是所有索引。我猜你是在函数之外处理这种情况。
相关文章:
- netcat command in c++
- Difference in displaying cv2 Mat
- C++ MFC Libraries in Travis CI
- 如何在OpenSSL中从configuration.h.in获取configuration.h
- 创建具有 new in 函数和"this is nullptr"异常的对象
- IN, OUT, INOUT Parameters
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 有人安装"IITB Simplecpp in mac"吗?
- 从 C 样式字符串中删除子字符串 "in place" 在C++代码中
- 如何修复"error: ‘_1’ was not declared in this scope"?
- Softmax Implementation in C++
- 将 out/in out 参数与 if/switch 的 init 语句一起使用
- IF-nesting in c++
- Gurobi GRBModel and GRBmodel in C++
- Tensorflow Hub in C++
- Centos7 g++ "to_string is not in a member of std"
- InitializeCriticalSectionEx Not Located In KERNEL32.Dll
- 将 lambda 表达式传递给 std::function in C++
- @CPPFLAGS@在 Makefile.in 中意味着什么?
- std::async from std::async in windows xp