Tak, c[i]=''
nie jest prawidłowym kodem. Stała znakowa nawiasu między '
'
, np. c[i] = 'A';
char A
. ale nie piszemy żadnego znaku między ''
.
Pusta przestrzeń jest niczym innym, jak przypuszczam, jeśli chce przypisanej przestrzeni wtedy zrobić:
c[i] = ' ';
// ^space
jeśli chce przypisany nul char
wtedy zrobić:
c[i] = '\0';
// ^null symbol
Przykład: Załóżmy, że jeśli c[]
string (nul \0
zakończona tablica znaków), jeśli masz ciąg znaków. na przykład:
char c[10] = {'a', '2', 'c', '\0'};
I Ci zastąpić drugą char z miejsca:
c[1] = ' ';
a jeśli wydrukować go za pomocą printf następująco:
printf("\n c: %s", c);
wtedy wyjście będzie:
c: a c
// ^space printed
I zastąpić drugą char z '\ 0':
c[1] = '\0';
wtedy wyjście będzie:
c: a
ponieważ łańcuch zakończony \0
.
nie ma "pusta przestrzeń" (źle terminologię), chociaż może być pustym ciągiem. Czy chcesz zamienić 'c [i]' na * pustą przestrzeń *, czy też chcesz "wyeliminować" ten znak z tablicy, tak jak zrobiłbyś to w edytorze, gdy naciśniesz backspace (np. Czy chcesz znaki c [i-1] i c [i + 1] stają się sąsiadami po operacji)? –
Jeśli rozumiesz łańcuchy znaków, to w momencie deklaracji możesz przypisać [char char [5] = ""; '] (http://stackoverflow.com/questions/17790127/what-is-meant-by-char -temp3/17790207 # 17790207) pusty łańcuch, ale "char c ="; "nie jest ważny, jak poniżej wyjaśniono w 6 odpowiedziach. –