Programs
Вариант 24
Главная
Код данной программы предназначен только для VS. В Dev-C она будет работать некорректно из-за затирания переменных.
Здесь ошибка
Код:
#include "stdafx.h" #include using namespace std; #define MAXLINE 255 int space(char s[MAXLINE], int l) { int i = 0; for (i; s[i] != '\0'; i++); int j = 0, k = 0; cout << "Staraya dlina stroki: " << i << endl; if ((l > MAXLINE) || (s[0] == '\0') || (l <= i)) return 1; int kolvo = l - i; while (kolvo!=0) { for (j=0; s[j] != '\0'; j++) { if ((s[j] == ' ') && (kolvo !=0)) { i++; s[i] = '\0'; for (k=i-1; k!=j; k--) { s[k + 1] = s[k]; } s[k+1] = ' '; kolvo--; while(s[j]==' ') j++; } } } cout << "Novaya stroka: " << s << endl; for (i=0; s[i] != '\0'; i++); cout << "Novaya dlina stroki: "<< i << endl; return 0; } int spaceadr(char s[MAXLINE], int l) { int i = 0; for (i; *(s+i) != '\0'; i++); int j = 0, k = 0; if ((l > MAXLINE) || (*s == '\0') || (l <= i)) return 1; cout << "Staraya dlina stroki: " << i << endl; int kolvo = l - i; while (kolvo != 0) { for (j = 0; *(s+j) != '\0'; j++) { if ((*(s + j) == ' ') && (kolvo != 0)) { i++; s[i] = '\0'; for (k = i - 1; k != j; k--) { *(s+k+1) = *(s+k); } *(s + k + 1) = ' '; kolvo--; while (*(s+j) == ' ') j++; } } } cout << "Novaya stroka: " << s << endl; for (i = 0; *(s+i) != '\0'; i++); cout << "Novaya dlina stroki: " << i << endl; return 0; } int main() { char string[MAXLINE]; int dlina; cout << "Vvedite stroku" << endl; gets_s(string); cout << "Vvedite dlinu stoki" << endl; cin >> dlina; if (space(string, dlina)) cout << "Error" << endl; if (spaceadr(string, dlina)) cout << "Error" << endl; return 0; }