how to wtite it using a char array?
Q: " given a string. obtain another one by swapping the parts of the first one after the first entry of space"
*dont mind the comments
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
#include <string>
#include <iostream>
usingnamespace std;
int main()
{
string test{ "basketball is a popular sport" };
size_t sp = test.find(' '); // Базовий беззнаковий цілочисельний тип мови
string test1;
if (sp != string::npos)
// статичне значення постійного члена з максимально можливим значенням для елемента типу size_t
test1 = test.substr(sp + 1) + " " + test.substr(0, sp);
/* Повертає нещодавно побудований об'єкт рядка з його значенням, ініціалізованим до копії підрядка цього об'єкта*/
cout << test<<'\n';
cout << test1 << '\n';
#include <iostream>
#include <cstring>
int main() {
// given a string. obtain another one by swapping the parts of the first one after the first entry of space
constchar srce[] = "basketball is a popular sport" ;
char dest[ sizeof(srce) ] {} ;
// locate the first space in srce
constchar* fs = std::strchr( srce, ' ' ) ;
if( fs != nullptr ) { // found space
// copy everything after the space
std::strcpy( dest, fs+1 ) ;
// append a space
std::strcat( dest, " " ) ;
// append everything in srce before the space
const std::size_t num_chars = fs - srce ; // number of characters before the space
std::strncat( dest, srce, num_chars ) ;
std::cout << '"' << dest << "\"\n" ;
}
}
This here works with pointers, without the need of making copy of the string:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
#include <stdio.h>
#include <string.h>
int main()
{
constchar s[] = "basketball is a popular sport";
printf( "%s\n", s );
constchar * c = strchr( s, ' ' );
// prints the last part
printf( "%s ", c + 1 );
// prints the first part
for( constchar * p = s; p < c; p++ )
putc( *p, stdout );
putc( '\n', stdout );
}