Use stringi package and stri_length function
> stri_length(c("ala ma kota","ABC",NA))
[1] 11  3 NA
Why? Because it is the FASTEST among presented solutions :)
require(microbenchmark)
require(stringi)
require(stringr)
x <- c(letters,NA,paste(sample(letters,2000,TRUE),collapse=" "))
microbenchmark(nchar(x),str_length(x),stri_length(x))
Unit: microseconds
           expr    min     lq  median      uq     max neval
       nchar(x) 11.868 12.776 13.1590 13.6475  41.815   100
  str_length(x) 30.715 33.159 33.6825 34.1360 173.400   100
 stri_length(x)  2.653  3.281  4.0495  4.5380  19.966   100
and also works fine with NA's
nchar(NA)
## [1] 2
stri_length(NA)
## [1] NA
EDIT 2021
NA argument is no longer valid if you are using latest R version.