---
title: "init(decodingCString:as:)"
framework: swift
role: symbol
role_heading: Initializer
path: "swift/string/init(decodingcstring:as:)-8way7"
---

# init(decodingCString:as:)

Creates a new string by copying the null-terminated sequence of code units referenced by the given array.

## Declaration

```swift
init<Encoding>(decodingCString nullTerminatedCodeUnits: [Encoding.CodeUnit], as encoding: Encoding.Type) where Encoding : _UnicodeEncoding
```

## Parameters

- `nullTerminatedCodeUnits`: An array containing a null-terminated sequence of code units encoded in encoding.
- `encoding`: The encoding in which the code units should be interpreted.

## Discussion

Discussion If nullTerminatedCodeUnits contains ill-formed code unit sequences, this initializer replaces them with the Unicode replacement character ("\u{FFFD}"). note: This initializer is deprecated. Use the initializer String.init(decoding: array, as: Encoding.self) instead, remembering that “\0” is a valid character in Swift.

## See Also

### Converting a C String

- [init(bytes:encoding:)](swift/string/init(bytes:encoding:).md)
- [init(bytesNoCopy:length:encoding:freeWhenDone:)](swift/string/init(bytesnocopy:length:encoding:freewhendone:).md)
- [init(validatingCString:)](swift/string/init(validatingcstring:)-992vo.md)
- [init(validatingCString:)](swift/string/init(validatingcstring:)-98wra.md)
- [init(cString:)](swift/string/init(cstring:)-2p84k.md)
- [init(cString:)](swift/string/init(cstring:)-6kr8s.md)
- [init(cString:encoding:)](swift/string/init(cstring:encoding:)-3h7bc.md)
- [init(cString:encoding:)](swift/string/init(cstring:encoding:)-3qgzd.md)
- [decodeCString(_:as:repairingInvalidCodeUnits:)](swift/string/decodecstring(_:as:repairinginvalidcodeunits:)-46n2p.md)
