|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.12.2011, 20:05 | #1 |
Пользователь
Регистрация: 30.10.2011
Сообщений: 22
|
Не могу сделать функцию для строки
При вводе символов программа дает ошибку...
Пишет невозвожно вычислить "int len = strlen(s);" в setArray и labArray Вот код: // Functions.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <clocale> #include <math.h> #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <time.h> #include <iostream> #include <string.h> #include <windows.h> #define _CRTDBG_MAP_ALLOC #include <crtdbg.h> int printMenu(int x); void setArray (char *s, int len); void printArray (char *s); void labArray (char *s); void casenull(char *s); int _tmain(int argc, _TCHAR* argv[]) { _CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF); SetConsoleCP(1251); SetConsoleOutputCP(1251); int menu = 0; char *s = NULL; int len = 0; do { menu = printMenu(1); switch (menu) { case 1: setArray (s, len); // Параметры break; case 2: printArray (s); // Параметры break; case 3: labArray (s); // Параметры break; case 0: casenull (s); // Параметры break; default: { printf("\n"); printf("\n"); printf("\n"); printf("-------------------\n"); printf("Неверный пункт меню\n"); printf("-------------------\n"); printf("\n"); printf("\n"); printf("\n"); break; } } }while (menu != 0); if (s != NULL) { delete [] s; } return 0; } int printMenu(int x) { if (1 == x) { printf(" Menu \n"); printf("1. Ввести строку.\n"); printf("2. Вывод строки\n"); printf("3. Задание к Лабораторной работе\n"); printf("0. Выход\n"); } if (3 == x) { printf("1. Преобразовать строку (отразить)\n"); printf("2. Вывод\n"); } int m = 0; scanf ("%d", &m); return m; } void setArray (char *s, int len) { int i = 0; printf("Введите строку: "); char ch = 0; while(true) { ch = getch(); printf("%c", ch); if (ch == 13) { printf("\n"); break; } int len = strlen(s); char *tmp = new char[len+2]; strcpy (tmp, s); tmp[len] = ch; tmp[len + 1] = '\0'; s = tmp; } } void printArray (char *s) { printf("Вы ввели: \"%s\"\n", s); } void labArray (char *s) { int subMenu = 0; do { subMenu = printMenu(3); if (subMenu != 1 && subMenu != 2) { printf("Неверный пункт меню!\n"); } }while (subMenu != 1 && subMenu != 2); if (1 == subMenu) { int len = strlen(s); char t = 0; for (int i = 0; i < len/2; i++) { t = s[i]; s[i] = s[len - 1 - i]; s[len - 1 - i] = t; } } else if (2 == subMenu) { printf("Ответ: \"%s\"\n", s); } } void casenull(char *s) { delete []s; } |
07.12.2011, 20:08 | #2 |
Пользователь
Регистрация: 30.10.2011
Сообщений: 22
|
Я новичок, так что пож-а не судите строго)
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
не могу создать функцию | ziganurov2011 | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 26.07.2011 19:45 |
Сумма ряда с точностью Е=10-4, Сформировать обномерный массив, написать функцию для удаления строки... | Dasha M | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 06.05.2011 18:33 |
Хочу сделать форму для ввода паролей! Для этого текст должен быть зашифрован в (*****) ! Как сделать | vitaaly | Visual C++ | 2 | 12.02.2011 12:29 |
как сделать функцию-друга для вложенного класа? | Pord | Общие вопросы C/C++ | 0 | 13.09.2009 16:57 |
Не могу сделать на Delphi аналог phpMyAdmin для MySQL 4 | Daniel_90 | БД в Delphi | 3 | 05.03.2009 09:57 |