Перевод из double в char - C (СИ)
Формулировка задачи:
Нужно написать программу: строкой вводим 1 слагаемое, 2 слагаемое, строку для поиска. Программа переводит строку в число и считает. Потом нужно посчитать кол-во совпадений в строке. Для этого полученный результат нужно опять перевести в строковую переменную. Для этого я хочу использовать sprintf, но он почему-то не работает. Пишет "error C2664: sprintf: невозможно преобразовать параметр 2 из "double" в "const char *". Что я делаю не так? Есть ли замена sprintf?
Вот фрагмент моей программы
#include "StdAfx.h"
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <process.h>
int main(void)
{
setlocale(LC_ALL, "rus");
char a1c[255], a2c[255], f; //первое слагаемое, второе слагаемое и строка для проверки
double a1d, a2d, f1; //первое слагаемое, второе слагаемое и сумма
printf("Введите первое слагаемое: ");
gets(a1c); //если использовать scanf вместо gets, программа работает некорректно
printf("Введите второе слагаемое: ");
gets(a2c);
a1d=atof(a1c);
a2d=atof(a2c);
f1=a1d+a2d;
sprintf("%f", f1);
}Решение задачи: «Перевод из double в char»
textual
Листинг программы
#include <stdio.h>
int main()
{
char a[100];
double a1,a2,f1;
char c;
printf("Введите выражение: ");
gets(a);
sscanf(a,"%lf%c%lf",&a1,&c,&a2);
if(c=='+')
{
f1=a1+a2;
printf("%lf", f1);
}else
printf("ошибочный знак операции");
return 0;
}
Объяснение кода листинга программы
- Объявлены следующие переменные: char a[100]; double a1,a2,f1; char c;
- Программа запрашивает у пользователя ввод выражения с помощью функции printf:
printf(
Введите выражение:); - Функция gets(a) используется для считывания введенного пользователем выражения и сохранения его в массиве a.
- Функция sscanf(a,
%lf%c%lf,&a1,&c,&a2) используется для разбора введенного пользователем выражения и сохранения его частей в переменных a1, c и a2. - Если символ, введенный пользователем, равен
+, то выполняется операция сложения a1 и a2, результат сохраняется в переменной f1. - Если символ, введенный пользователем, не равен
+, то выводится сообщение об ошибкеошибочный знак операции. - Результат операции выводится на экран с помощью функции printf:
printf(
%lf, f1);