Programs
Вариант 4
Главная
Код данной программы предназначен только для VS. В Dev-C она будет работать некорректно из-за затирания переменных.
Здесь ошибка
Код:
#include "stdafx.h" #include using namespace std; #define MAXLEN 150 int parse(char s[MAXLEN],char t) { if ((s[0] == '\0') || (t == 0)) return 1; int i; int j; for (j = 0; s[j] != '\0'; j++) for (i = 0; s[i] != t; i++) { if (s[i] == '\0') return 2; } char news[MAXLEN]; s[i] = t; i++; cout << s[0] << endl; int step = i; j = j-i; int go = i; for (i = 0; i < j; i++) { if (s[go] != '\0') news[i] = s[go]; go++; } s[step] = '\0'; news[i] = '\0'; cout << "Pervoe: " << s << endl; cout << "Vtoroe: " << news << endl; return 0; } int parsestr(char *s, char t) { if ((*s == '\0') || (t == 0)) return 1; int i; int j; for (j = 0; *(s+j)!= '\0'; j++) for (i = 0; *(s + i) != t; i++) { if (*(s + i) == '\0') return 2; } char news[MAXLEN]; *(s + i) = t; i++; cout << s[0] << endl; int step = i; j = j - i; int go = i; for (i = 0; i < j; i++) { if (*(s + go) != '\0') *(news + i) = *(s + go); go++; } *(s + step) = '\0'; *(news + i) = '\0'; cout << "Pervoe: " << s << endl; cout << "Vtoroe: " << news << endl; return 0; } int main() { char len[150]; char sym=0; cout << "Vvedite stroku" << endl; gets_s(len); cout << "Vvedite simvol" << endl; cin >> sym; int go = parse(len, sym); if (go == 1) cout << "Error" << endl; else if (go == 2) cout << "Funkciya ne nashla symvol" << endl; int go1 = parsestr(len, sym); if (go1 == 1) cout << "Error" << endl; else if (go1 == 2) cout << "Funkciya ne nashla symvol" << endl; return 0; }