#include <stdio.h>
#include <stdlib.h>
int main ()
{
char numbers[] = "0x6fffff"; // ваша исходная строка
long int li4 = strtol(numbers, NULL, 0); // получите ваш эквивалент
printf("Десятичный эквивалент распознанного числа:%ld\n", li4);
char buff[100];
sprintf( buff, "%ld", li4 ); // если нужно эквивалент снова сделать строкой
printf("Ваша строка из числа: %s\n", buff);
return EXIT_SUCCESS;
}
/* консоль
Linux ubuntu14 3.13.0-153-generic #203-Ubuntu SMP Thu Jun 14 08:52:28 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
alexander@ubuntu14:~/tmp$ gcc trans.c -o trans_c
alexander@ubuntu14:~/tmp$ ./trans_c
Десятичный эквивалент распознанного числа:7340031
Ваша строка из числа: 7340031
*/
/* читаем из файла требуемое кол. строк ROWS или до конца файла EOF
* (что наступит раньше), формируем строку по конечному символу '\n'
* в файле, затем добавляем завершающий '\0' и полученную строку СИ
* записываем
* в двумерный массив по 1-й строке в каждый элемент массива.
* Затем массив выводим на консоль. Есть подсчет считанных строк.
* См также ниже мой коммент
*/
/* file_in находится в каталоге программы и имеет вид:
I am a human 1
I am a 2 human`s 2
I am a 3 human 3
Nmjh## ___ 987 ht!
5555555555555555
66666666666666
77777777777777
8888888888888888
*/
#include <stdio.h>
#include <stdlib.h> /* prototype exit() */
#include <string.h>
#define ROWS 7
#define COLS 20
void file_open(void);
FILE * file_in;
char ch, arr_str[ROWS][COLS];
int j, i, count = 0;
int main(int agrc, char * argv[]){
file_open();
for(j = 0; j < ROWS; ++j){
for(i = 0; (ch=getc(file_in)) != '\n' && (ch != EOF); ++i) {
arr_str[j][i] = ch; // заполнение строки
} //конец внутреннего for
if(ch == EOF){
puts("достигнут конец файла, выход.");
fprintf(stdout, "count is: %i \n", count);
break;
} // конец if
else{
arr_str[j][i] = '\0';
++count;
} // конец else
} // конец внешнего for
fclose(file_in);
/* вывод массива на консоль */
fprintf(stdout, "Из файла считано %i строк, которые имеют вид:\n", count);
puts(""); // пропуск строки
for(j = 0; j < count; ++j){
fprintf(stdout, "%s\n", arr_str[j]);
}
puts(""); // пропуск строки
puts("Программа завершена.");
exit(EXIT_SUCCESS);
}
void file_open(void){
if( (file_in = fopen("file_in", "r")) == NULL){
fprintf(stdout, "%s\n", "не могу отрыть файл для чтения");
exit(EXIT_FAILURE);
}
}
/*
Вывод на консоль:
Из файла считано 7 строк, которые имеют вид:
I am a human 1
I am a 2 human`s 2
I am a 3 human 3
Nmjh## ___ 987 ht!
5555555555555555
66666666666666
77777777777777
Программа завершена.
*/
/* ваши комменты */
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define SIZE 50
char buff[SIZE] = {0};
int main(int argc, char * argv[]){
int i, j, num1, num2;
char c = '.'; // искомый символ
char * str_ptr1;
char * str_ptr2;
puts("введите произвольную строку");
gets(buff);
str_ptr1 = strchr(buff, c);
str_ptr2 = strrchr(buff, c);
if (str_ptr1 == 0){
puts("искомого символа нет в строке");
exit(EXIT_FAILURE);
}
else if (str_ptr2 == 0 || str_ptr2 == str_ptr1){
fprintf(stdout, "%s", "Искомый символ единичен в строке");
exit(EXIT_FAILURE);
}
size_t len = strlen(buff);
i = 0;
while(buff[i] != '\0'){
if(buff[i] == c && buff[i+1] == c){
num1 = i + 1;
while(buff[i+1] == c){
++i;
num2 = i;
}
for(j = 0; j <= (len - num2 + 1); ++j){
buff[num1 + j] = buff[num2 + 1 + j];
}
}
++i;
}
puts("Итоговая строка имеет вид: ");
puts(buff);
exit(EXIT_SUCCESS);
}
/* в консоли:
введите произвольную строку
...abc...de
Итоговая строка имеет вид:
.abc.de
введите произвольную строку
ngt,,,
искомого символа нет в строке
*/