#c #string #binary
#c #строка #двоичный
Вопрос:
Мне нужно преобразовать слова в двоичные числа, расположенные вертикально (n). Мне нужно написать функцию, которая будет выполнять это преобразование.. Ниже приведен пример.. Не могли бы вы мне помочь, пожалуйста?
//main
char* text = "Hello, how are you?";
const int len = strlen(text);
bool bytes1[len 1][8];
encode_string(text, bytes1);
for(int j = 0; j <= len; j ){
printf("%c: ", text[j]);
for(int i = 0; i < 8; i ){
printf("%d", bytes1[j][i]);
}
printf("n");
}
// prints:
// H: 01001000
// e: 01100101
// l: 01101100
// l: 01101100
// o: 01101111
// ,: 00101100
// : 00100000
// h: 01101000
// o: 01101111
// w: 01110111
// : 00100000
// a: 01100001
// r: 01110010
// e: 01100101
// : 00100000
// y: 01111001
// o: 01101111
// u: 01110101
// ?: 00111111
// : 00000000
//function
void encode_string(const char string[], bool bytes[strlen(string) 1][8]){
}
Комментарии:
1. Что насчет вашего кода не работает?
2. Что касается комментариев в предыдущем ответе ниже: » Хорошо, но программы будут работать с этим образцом (в основном введенном): …, и у меня есть эти ошибки» . Я предлагаю выполнить часть работы самостоятельно … и получить отладчик.
Ответ №1:
Привет, чувак, ты можешь использовать это:
Преобразование каждого символа:
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
int main(void){
char* text = "Hello, how are you?";
int len_size = strlen(text);
for(int j = 0; j <= len_size; j ){
printf("%c: ", text[j]);
for( int i = 7; i >= 0; i-- ) {
printf( "%d", ( text[j] >> i ) amp; 1 ? 1 : 0 );
}
printf("n");
}
return 0;
}
О другом варианте с вашей функцией:
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
void encode_string(char string[], int len_size);
int main(void){
char* text = "Hello, how are you?";
int len_size = strlen(text);
encode_string(text, len_size);
return 0;
}
void encode_string(char string[], int len_size){
for(int j = 0; j <= len_size; j ){
printf("%c: ", string[j]);
for( int i = 7; i >= 0; i-- ) {
printf( "%d", ( string[j] >> i ) amp; 1 ? 1 : 0 );
}
printf("n");
}
}
Я уже знаю вашу ошибку, вы пытаетесь отправить в функцию, и вы не отправляете правильные параметры…
Комментарии:
1. @OnlyForFun Это работает для меня, я буду индексировать печать
2. @OnlyForFun Вы пытаетесь так назначить функцию
mblen
, и вы этого не хотите, поэтому используйте размер строки! Это сработает, затем отметьте вопрос зеленой галочкой, чтобы люди не теряли больше времени на решение этого вопроса3. я скопировал ваш код, и у меня есть эта ошибка 1, посмотрите ниже:
qr.c: In function ‘encode_string’: qr.c:76:21: error: ‘len’ undeclared (first use in this function); did you mean ‘mblen’? 76 | for(int j = 0; j <= len; j ){ | ^~~ | mblen qr.c:76:21: note: each undeclared identifier is reported only once for each function it appears
экран: ibb.co/n3yFk4m4. @OnlyForFun Правильно ли вы его объявили отправьте распечатку своего кода! Как вы делали из своей оболочки
5. @OnlyForFun Или, если вы хотите, можете отправить весь свой код сюда: codeshare. ввод -вывод и нажмите поделиться, затем отправьте мне ссылку, я это исправлю! Я думаю, что это глупая проблема, возможно, неправильное объявление функции / переменной.