Все еще пишу программу для поиска слов - C (СИ)
Формулировка задачи:
Нужно найти слова состоящие только из I V X L C D M Z.
Ниже программа и ошибки.
Ошибки-ошибочки:
Ошибка 1 error C2061: синтаксическая ошибка: идентификатор "s"
Ошибка 2 error C2061: синтаксическая ошибка: идентификатор "s"
Ошибка 3 error C2181: недопустимый else без парного if
Ошибка 4 error C2440: =: невозможно преобразовать "char *" в "char"
Как исправить?
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
char * findchar(char *s, char c) //функция для поиска пробела
{
while (*s && *s != c)
++s;
return s;
}
void main()
{
char s[80] ;
int i = 0, count = 0, flag = 0,c;
printf("Введите: ");
scanf("%s", s);
c = 0;
while s != EOF; { //ошибка 1
while (c < strlen(s)) { //цикл от 0 до конца вводимой строки
if (s[c] == ' ') { c = c + 1; } //если пробел, то переходим на след. символ
if (s[c] != ' ') {
while s[c] != ' '; //ошибка2
{if (s[c] == 'i') ||
(s[c] == 'v') ||
(s[c] == 'x') ||
(s[c] == 'l') ||
(s[c] == 'c') ||
(s[c] == 'd') ||
(s[c] == 'm') ||
(s[c] == 'z')
{
c++; flag = 1;
}
else { flag = 0; s[c] = findchar(s, '0'); //поиск следующего пробела Ошибка3 и 4
}
if (flag == 1){ count++; } //если флаг=1, то к общему кол-ву '+1'
}
}
}
printf("d\n", count);
}Решение задачи: «Все еще пишу программу для поиска слов»
textual
Листинг программы
s[c] = findchar(s, '0');
Объяснение кода листинга программы
В данном коде выполняется поиск символа '0' в строке s и сохранение его позиции в переменной c. Список действий:
s- это строка, в которой нужно найти символ '0'.c- это переменная, которая будет хранить позицию найденного символа.findchar(s, '0')- это функция, которая ищет первый символ '0' в строке s и возвращает его позицию.s[c] = findchar(s, '0')- это присваивание, которое сохраняет значение функции findchar в элемент строки s с индексом c. Таким образом, после выполнения данного кода, в переменной s будет содержаться строка, в которой символ '0' заменен на его позицию в строке.