long sum_vector(const std::vector<std::string> vector) { ... }
for (size_t index =1;index<arg.size();++index)
{
if (arg[index] == "--range")
{
...
void cout_hello_world()
{
std::cout << "Hello world\n";
}
std::string hello_world()
{
return "Hello world";
}
size_t index = arg.size();
index = 0;
while (index < arg.size()) {
auto item = arg[index];
...
#define vec_s std::vector<std::string>
#define vec_i std::vector<int>
for (auto& x : vec) {
ans += stoi(x);
}
...
for (int i = 1; i <= count; ++i) {
int from = stoi(vec[i * 2 + 0]);
...
const std::string range_command = "--range";
std::span<char*> buildSpan(char* args[]) {
int sum_range(int from, int to) {
int sum = 0;
for (size_t i = from; i <= to; i++)
{
sum += i;
}
return sum;
}
The problem is similar to LeetCode 46. Permutations. There are posts with solutions.
Find your code style and stick with it!
Google C++ Style Guide,
https://google.github.io/styleguide/cppguide.html (Style),
Texas State University.
Those are not endorsements!
Konverze do řetězce: std::to_string , std::format , ( custom types for std::format ), ...
Umístění: ./labs/02-string-revert/
Čas:
Implementujte funkce revert a revertInPlace. Aby je bylo možné zavolat následovně.
std::string original = "123456789";
auto reverted = revert(original);
auto reverted_twice = revert(reverted);
revertInPlace(original);
std::cout << "Reverted original (987654321): " << original << std::endl
<< "Reverted (987654321): " << reverted << std::endl
<< "Reverted twice (123456789): " << reverted_twice << std::endl;
Uvedený fragment kódu vložte do funkce main.
#include <ctype.h> vs #include <locale>
Detekce druhu znaku: std::isalpha , std::isalnum , std::isdigit , ...
Změna znaku: toupper vs std::toupper
Umístění: ./labs/02-string-update/
Čas:
Napište funkci, která dostane řetězec. Funkce změní každé písmeno na upper case. Každé číslo zvedne o jedna. Řetězec stačí číst po znaku, číslo je tedy vždy jeden znak.
Příklad: m3ssage92 => M4SSAGE103
std::string original = "m3ssage92";
std::string modified = magic(original);
std::cout << "Expected value 'M3SSAGE103'" << std::endl;
std::cout << "Actual value '" << modified << "'" << std::endl;
Uvedený fragment kódu vložte do funkce main.
Umístění: ./labs/02-sum/
Čas:
Program čte dva argumenty z příkazové řádky. První argument je jméno vstupního souboru. Druhý argument je jméno výstupního souboru. Pokud je první argument '-' program čte ze standardního vstupu. Pokud je druhý argument '-' program zapisuje do standardního výstupu.
Program zpracovává vstup po řádkách. Na každém řádku program sečte hodnotu čísel a vyhodnotí výrazy '+' a '-'. Ostatní znaky program ignoruje. Výslednou hodnotu pak program zapíše na řádek výstupu. Výraz je oddělení z obou stran mezerou a sám mezeru neobsahuje. Vyhodnocení výraze je v pořadí čtení, neplatí tedy klasické přednosti operátorů Pokud je vstupní řádek, nebo neobsahuje číslo, vypíše program 0.
Vstup:
1 2 a1 0 2 8a v5 1+1 2+2+2 a1+b2 2+2-1+3
Výstup:
3 1 0 15 2 6 3 6
std::istream::peek , std::basic_istream<CharT,Traits>::ignore
Leave an anonymous feedback.