title: C printf function does not align strings correctly for strings that contain Turkish characters
body: <p>I have the following code to print some strings on the console in a left aligned format:</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;locale.h&gt;
  #include &lt;stdlib.h&gt;
  
  int main()
  {
      printf("%s:\n", "Türkçe karakterler ile");
      printf("%-14s: \n", "Onaltılık");
      printf("%-14s: \n", "Onluk");
      printf("%-14s: \n", "İkilik");
  
      printf("\n%s:\n", "Türkçe karakterler olmadan");
      printf("%-14s: \n", "Onaltilik");
      printf("%-14s: \n", "Onluk");
      printf("%-14s: \n", "Ikilik");
  }
  </code></pre>
  
  <p>I compiled this code with both gcc(7.3.0) and clang(6.0.0) on a Ubuntu 18.04 system.</p>
  
  <p>The output is as follows:</p>
  
  <pre><code>Türkçe karakterler ile:
  Onaltılık  : 
  Onluk        : 
  İkilik      : 
  
  Türkçe karakterler olmadan:
  Onaltilik     : 
  Onluk         : 
  Ikilik        :
  </code></pre>
  
  <p>As can be seen from the code in the first group of strings there are some Turkish characters such as 'ı' and 'İ'. There is no Turkish characters in the second group of strings. </p>
  
  <p>The output of printf function is not correctly aligned for the strings that contain Turkish characters. The expected output is:</p>
  
  <pre><code>Türkçe karakterler ile:
  Onaltılık     : 
  Onluk         : 
  İkilik        : 
  
  Türkçe karakterler olmadan:
  Onaltilik     : 
  Onluk         : 
  Ikilik        :
  </code></pre>
  
  <p>If I compile same code on a Windows system (Windows 7) with gcc (MinGW v5.1.1 inside CodeBlocks 17.2) the output is correct as follows:</p>
  
  <pre><code>Türkçe karakterler ile:
  Onaltılık     :
  Onluk         :
  İkilik        :
  
  Türkçe karakterler olmadan:
  Onaltilik     :
  Onluk         :
  Ikilik        :
  </code></pre>
  
  <p>Can anyone help me to figure out what the problem is?</p>