Мне нужно сделать функцию my_printf
, которая принимает строку, использует только первую букву строки (даже если перед ней есть пробелы), а затем выполняет \ n, не более 110 символов (пробелы / табуляции нев комплекте).
Я могу изменить функцию только между комментариями «НАЧАТЬ СДЕЛАНО НАЧАТЬ» И «НА СЛОВИТЬ ЗАВЕРШЕНИЕ».
Это код, который я написал до сих пор:единственная проблема, с которой я столкнулся, заключается в том, что в выходных данных она не использует заглавную букву «l» из «выглядит нормально :)» после \ t, и я понятия не имею, как реализовать использование заглавной буквы в символе, не находящемся в позиции q[0] строки без превышения максимального ограничителя в 110 символов в этом коде;Я знаю, что это требует петли, но я всегда, кажется, переступаю предел.
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void my_printf(char*p){
char s[strlen(p)+1], *q=s;
strcpy(s,p);
/* TO BE DONE START */
q[0]=toupper(q[0]);
putchar(q[0]);
for(*q=1;*q!='\0';++q) {
putchar(*q);
}
putchar('\n');
/* TO BE DONE END */
}
int main(){
my_printf("hello world!");
my_printf("How are you?");
my_printf("i\'m OK, and you?");
my_printf("1, 2, 3, testing ...");
my_printf("\t looks OK :-)");
my_printf("bye bye!");
return 0;
}
Мне нужна помощь в том, чтобы сделать этот код как можно короче, вот желаемый вывод:
Hello world!
How are you?
I'm OK, and you?
1, 2, 3, testing …
Looks OK :-)
Bye bye!
Пока у меня есть:
Hello world!
How are you?
I'm OK, and you?
1, 2, 3, testing …
looks OK :-)
Bye bye!