C++编程分配程序以信号11终止
C++ programming assignment program termiate with signal 11
下面是赋值:编写一个函数,将char数组作为输入参数,并反转字符串。函数应该使用两个指针,前指针和后指针。前指针最初应该引用字符串中的第一个字符,后指针最初应该参考字符串中的最后一个字符。通过交换前面和后面引用的字符来反转字符串,然后递增前面以指向下一个字符,递减后面以指向前一个字符等等,直到整个字符串反转为止。
然后,编写一个主函数,该函数接受用户的字符串作为输入,并打印反转的字符串(使用上面的函数)。所有输入字符串的长度不超过100个字符。
必须使用指针反转数组。
如果使用动态数组(不是必需的),则必须在程序结束前删除分配给任何动态数组的所有内存。
代码正确。当我手动操作时,它可以包括所有字符。只是不知道我为什么要提交测试,它会错过最后一个字符。以下是错误消息:[https://i.stack.imgur.com/Qukiw.png]
这是我的代码:
#include <iostream>
#include <cstdlib>
#include <cctype>
#include <string.h>
using namespace std;
void reverse(char *s);
int main()
{
char str[100] = "";
cout << "Enter string:" << endl;
cin.getline(str,100);
reverse(str);
cout << "The string reversed is:" << endl;
cout << str << endl;
return 0;
}
void reverse(char *s)
{
char *front, *rear, temp;
front = s;
rear = s + strlen(s)-1;
while (front < rear)
{
temp = *front;
*front = *rear;
*rear = temp;
front++;
rear--;
}
return;
}
感谢您的帮助!
char str[100] = " ";
^^初始化是可选的
或者替代地。。。
char* str = (char*)malloc(sizeof(char) * 100);
这也可以,但我不推荐,c++还具有其他类型的铸造
char* str = new char[100];
另一种写法是,确保使用删除操作符
delete[] str // if you use the new keyword
相关文章:
- Qt VTK交互风格的信号到小部件
- OpenGL - 在抛出"__gnu_cxx::recursive_init_error"实例后终止调用?
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 多个文件的内存分配错误"在抛出 'std :: bad_alloc' what (): std :: bad_alloc 的实例后终止调用" [C++]
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- 我应该使用什么信号来终止/终止Windows上的应用程序
- 使用信号检测子进程何时终止的最佳方法是什么?
- 发出终止信号的 TBB 分配
- 如何使用unique_ptr声明调用构造函数并处理程序终止信号
- 用信号25终止程序,超过文件尺寸限制;为什么
- C++Linux二进制终止信号SIGKILL-为什么?(加载在GDB中)
- 使用SIGSEGV或SIGABRT信号转储核心并终止进程
- MFC应用程序挂起在发出终止信号的线程中
- 进程等待另一进程终止时的信号处理
- 我不希望一个作为守护进程的服务器进程关闭——即使在收到终止信号时也是如此.有什么办法可以确保这一点吗
- 用unix信号优雅地终止Qt应用程序
- 在处理迭代器时被信号SIGSEGV(地址边界错误)终止
- 在递归函数中被SIGSEGV(地址边界错误)信号终止
- C++编程分配程序以信号11终止
- 程序以信号 25 终止,时间 = 0.06 秒内存 = 3340KB