Ввести строку , заменить первые буквы на заглавные и вывести пословно - C (СИ)

Узнай цену своей работы

Формулировка задачи:

#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
    string str;
    string sumstr="";
    getline(cin,str);
    char d[3];
    d[0]=' ';
    d[1]='.';
    d[2]='!';
    d[3]='?';
    for(int i=0; i<str.length(); i++)
    {
        if(str[i]==d[0] || str[i]==d[1] || str[i]==d[2] || str[i]==d[3])
        {
            AnsiUpperCase(sumstr[0]);
            cout<<sumstr<<endl;
            sumstr="";
        }
        else
             sumstr=sumstr+str[i]; 
    }
        
    return 0;
}
Можно переделать это код на СИ , пожалуйста ^^ и если есть ошибки сообщите, просто у друга на комп-ре она работает правильно, у меня вылетает.

Решение задачи: «Ввести строку , заменить первые буквы на заглавные и вывести пословно»

textual
Листинг программы
#include <stdio.h>
#include <string.h>
#include <ctype.h>
 
char* AnsiUpperCase(char* str) {
    char* p = str;
 
    for (; *p != '\0'; ++p) {
        *p = toupper(*p);
    }
 
    return str;
}
 
int main(int argc, char* argv[]) {
    const char CDelim[] = " \t\n.!?";
    char text[256];
    fgets(text, sizeof(text), stdin);
 
    char* p = strtok(text, CDelim);
 
    while (p != NULL) {
        printf("%s\n", AnsiUpperCase(p));
 
        p = strtok(NULL, CDelim);
    }
 
    return 0;
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек для работы со строками и символами.
  2. Создание функции AnsiUpperCase, которая принимает указатель на строку и возвращает указатель на новую строку, в которой все символы преобразованы в верхний регистр.
  3. Прохождение по всем символам строки, начиная с первого, и преобразование каждого символа в верхний регистр с помощью функции toupper.
  4. Возвращение исходной строки.
  5. Ввод строки с помощью функции fgets в буфер text.
  6. Разделение введенной строки на отдельные слова с помощью функции strtok, где разделителями являются пробел, табуляция, перевод строки, точка, восклицательный знак и вопросительный знак.
  7. Вывод каждого слова в формате Слово\n с помощью функции printf, предварительно применив функцию AnsiUpperCase для преобразования первого символа каждого слова в верхний регистр.
  8. После вывода каждого слова, функция strtok ищет следующее слово или возвращает NULL, если больше слов не осталось.
  9. Цикл продолжается до тех пор, пока не будет найдено NULL.
  10. Возвращение 0, что означает успешный конец работы программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.9 из 5
Похожие ответы