2016-04-03 19 views
-1

Klavyede bulunmayan ancak ASCII değerine sahip 15 özel karakter içeren bir dize olmasını isterim.Dize'de Özel Karakterler Atama C

karakterin ASCII değeri İşte 205. , öyle mi i bir işi ne:

int main(){ int i; char a[15]; for(i=0;i<15;i++) a[i]=205; printf("%s",a); return 0; }

Çıktı, lütfen yardım şartının olmadığını "= s" dir.

+0

ASCII kodları '127' için 0'' gelmektedir. '205' bir ASCII kodu değil. Ve _magic numbers_ kullanmayın. – Olaf

+0

Bu dinlenme 128 karakter Genişletilmiş ASCII karakterleridir. –

+0

Standart "Genişletilmiş ASCII" yok! Alt 128 kodlar için aynı karakterleri bilerek tanımlayan çeşitli 8 bit kodlamalar vardır. Ancak bunların hiçbiri ASCII standardının bir parçası değildir. Her neyse, C standardı ASCII'yi zorlamamaktadır ve başka kodlar da vardır, örn. EBCDIC. Yaygın olarak kullanılan UTF-8, örneğin 7 bitlik bir birincil kodlamayı kullanır. – Olaf

cevap

1

C "dizeleri" aslında "boş sonlandırılmış" dizilerdir. Yani bir karakter daha kullanmanız gerekiyor ve bunu 0 veya '\0' olarak ayarlamanız gerekiyor.

#include <stdio.h> 

int main() 
{ 
    int i; 
    char a[16]; 
    for(i=0;i<15;i++) 
     a[i]=205; 

    a[15] = 0; 
    printf("%s\n",a); 
    return 0; 
} 

Ayrıca, programınızın bitiminden önce en az yeni bir satır yazdırmak daha iyidir.

Benim çıkışı:

═══════════════ 
+0

C dizgisi tipine sahip değildir. 'Nul' sonlandırıcı C dilinde bir 'string' yapan bir sözleşmedir, bu yüzden "_most_ standart fonksiyonlar" değildir, fakat ** hepsi **. – Olaf