Question: I'm quite upset by the day. Give me best solution.

Your environment has been set up for using Node.js 0.10.38 (x64) and npm.

```
C:\Users\ASAR-KSS>npm install -g ionic
npm ERR! network getaddrinfo ENOTFOUND
npm ERR! network This is most likely not a problem with npm itself
npm ERR! network and is related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly.  See: 'npm help config'
    npm ERR! System Windows_NT 6.1.7600
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "ionic"
npm ERR! cwd C:\Users\ASAR-KSS
npm ERR! node -v v0.10.38
npm ERR! npm -v 1.4.28
npm ERR! syscall getaddrinfo
npm ERR! code ENOTFOUND
npm ERR! errno ENOTFOUND
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     C:\Users\ASAR-KSS\npm-debug.log
npm ERR! not ok code 0

C:\Users\ASAR-KSS>

```

Answer: 
First, get rid of the hard-coded ASCII-isms. C and C++ have long had functions for determining whether a character is a letter, a digit, uppercase, lowercase, etc. Look them up.

Second, describe **clearly** what goes into determining the order that you want the result to be in.

Third, from that description, **write a function** that takes two strings, and tells you whether the first string should come before the second. Use **that function** in the sort.
You can sort a vector using `std::sort` and get a reference to the first character in a `std::string` using `std::string::at()` :

```
std::vector<std::string> vec;
//
std::sort(vec.begin(), vec.end(), [](const std::string& lhs, const std::string& rhs)
{ 
    char l_ch, r_ch;
    l_ch = lhs.at(0);
    r_ch = rhs.at(0);
    return l_ch < r_ch;
});

```