Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <ctype.h>
- #include <string.h>
- #define NULL ((void*)0)
- char changeArr() {
- char STR[400];
- char STR1[400];
- char *st;
- int a;
- printf("Введите 1 или 2, где\n1 - проверка с помощью тестирующей программы\n2 - проверка данных, введённых вручную\n");
- if (scanf("%d",&a)==0 || (a!=1 && a!=2)) {
- printf("Ошибочный ввод! Закрытие программы.");
- exit(1);
- }
- if (a==1) {
- printf("Выберите одно из предложенных выражений:\n");
- printf("1: ab2cde3 fg hi4j5k .\n");
- printf("2: a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a .\n");
- printf("3: abcdefghij a33daadad .\n");
- printf("4: a6o a6o a6o\n");
- printf("5: ugu g3uhu huhuhu4h 3454345 fh 2dd121212 .\n");
- printf("6: 123 123 123 123 123 123 .\n");
- printf("7: asd asDs asdSaDd aDd aSd asdsAs asAd .\n");
- printf("8: __grustno .\n");
- printf("9: .\n");
- printf("0: 4ro7ad0 fo567od c267od592e h246908u3nt56e77r0971 .\n");
- char A;
- A=getchar();
- A=getchar();
- switch(A) {
- case '1':
- st = "ab2cde3 fg hi4j5k .";
- break;
- case '2':
- st ="a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a .";
- break;
- case '3':
- st ="abcdefghij a33daadad .";
- break;
- case '4':
- st ="a6o a6o a6o";
- break;
- case '5':
- st ="ugu g3uhu huhuhu4h 3454345 fh 2dd121212 .";
- break;
- case '6':
- st ="123 123 123 123 123 123 .";
- break;
- case '7':
- st ="asd asDs asdSaDd aDd aSd asdsAs asAd .";
- break;
- case '8':
- st ="__grustno .";
- break;
- case '9':
- st =" .";
- break;
- case '0':
- st ="4ro7ad0 fo567od c267od592e h246908u3nt56e77r0971.";
- break;
- }
- printf("Исходная строка: \n");
- printf("%s\n",st);
- int p;
- for (p=0; st[p]!='\0'; p++) {
- STR[p]=st[p];
- }
- STR[p]='\0';
- }
- if (a==2) {
- printf("Введите от 1 до 30 слов (длина каждого не более 10),\n при этом строка должна заканчиваться символом \".\", расположенным через пробел от последнего слова, \nа суммарное количество пробелов в строке не более 99\n");
- gets(STR);
- gets(STR);
- int p;
- for (p=0; STR[p]!='\0'; p++) {
- STR1[p]=STR[p];
- }
- STR1[p]='\0';
- printf("Исходная строка: \n");
- printf("%s\n",STR1);
- }
- char *str[10];
- char *istr;
- char sep[]=" ";
- int l,h,c,S=0;
- h=strlen(STR);
- if (STR[h-1]!='.') {
- printf("Ошибочный ввод! Закрытие программы. ");
- exit(2);
- }
- istr=strtok(STR,sep);
- h=strlen(istr);
- if (h>10 || istr[0]=='.') {
- printf("Ошибочный ввод! Закрытие программы. ");
- exit(3);
- }
- for (int i=0; istr[i]!='\0';i++) {
- if (isdigit(istr[i])==0 && isalpha(istr[i])==0 && istr[i]!='.') {
- printf("Ошибочный ввод! Закрытие программы. ");
- exit(5);
- }
- if (isdigit(istr[i])!=0) {
- for (c=i; istr[c]!='\0';c++) {
- istr[c]=istr[c+1];
- }
- i--;
- }
- if (istr[i]=='.') {
- S++;
- if (S>1) {
- printf("Ошибочный ввод! Закрытие программы. ");
- exit(6);
- }
- }
- }
- int k,H;
- h=strlen(istr);
- if ((h%2!=0 && istr[h-1]=='.') || (h%2==0 && istr[h-1]!='.')) {
- str[0]=istr;
- if (h%2==0 && istr[h-1]!='.') {
- l=1;
- }
- if (h%2!=0 && istr[h-1]=='.') {
- printf("Новая строка: \n");
- printf("%s\n",istr);
- exit(0);
- }
- if (h%2==0 && istr[h-1]=='.') {
- printf("Строка не подходит под условие. \n");
- exit(0);
- }
- }
- else {
- l=0;
- }
- int u=0;
- int j=0;
- while (istr!=NULL) {
- if (*istr=='.') {
- u++;
- }
- istr=strtok(NULL,sep);
- if (istr==NULL) {
- break;
- }
- if (istr!=NULL && u!=0) {
- printf("Ошибочный ввод! Закрытие программы. ");
- exit(10);
- }
- H=strlen(istr);
- if ((H>11 && istr[H-1]=='.') || (H>10 && istr[H-1]!='.')) {
- printf("Ошибочный ввод! Закрытие программы. ");
- exit(4);
- }
- j++;
- H=strlen(istr);
- for (int i=0; istr[i]!='\0';i++) {
- if (isdigit(istr[i])==0 && isalpha(istr[i])==0 && istr[i]!='.') {
- printf("Ошибочный ввод! Закрытие программы. ");
- exit(5);
- }
- if (*istr=='.' || istr[i]=='.') {
- S++;
- }
- if (isdigit(istr[i])!=0) {
- for (k=i;istr[k]!='\0';k++) {
- istr[k]=istr[k+1];
- }
- i--;
- }
- }
- H=strlen(istr);
- if ((H%2!=0 && istr[H-1]=='.') || (H%2==0 && istr[H-1]!='.')) {
- istr[H]='\0';
- str[l]=istr;
- l++;
- }
- if (S>1) {
- printf("Ошибочный ввод! Закрытие программы. ");
- exit(6);
- }
- }
- if (j>30) {
- printf("Ошибочный ввод! Закрытие программы. ");
- exit(7);
- }
- if ((l==1 && H==1) || (l==1 && istr[H-1]=='.' && H%2==0) || l==0) {
- printf("Нет ни одного слова, подходящего под условия\n");
- exit(8);
- }
- printf("Новая строка: \n");
- int i;
- int s;
- for (i=0; i<l-1; i++) {
- printf("%s ",str[i]);
- }
- printf("%s",str[l-1]);
- return 0;
- }
- int main() {
- changeArr();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement