---
title: UTF8Span.CharacterIterator
framework: swift
role: symbol
role_heading: Structure
path: swift/utf8span/characteriterator
---

# UTF8Span.CharacterIterator

Iterate the Character contents of a UTF8Span.

## Declaration

```swift
struct CharacterIterator
```

## Overview

Overview func countCharacters(_ string: borrowing String) {     var iterator = string.utf8Span.makeCharacterIterator()     var count = 0     while let character = iterator.next() {         count += 1         print("Character \(count): \(character)")     }     print("Total: \(count) characters") }

let string = "لاهور" countCharacters(string) // Prints "Character 1: ل" // Prints "Character 2: ا" // Prints "Character 3: ه" // Prints "Character 4: و" // Prints "Character 5: ر" // Prints "Total: 5 characters"

## Topics

### Initializers

- [init(_:)](swift/utf8span/characteriterator/init(_:).md)

### Instance Properties

- [codeUnits](swift/utf8span/characteriterator/codeunits.md)
- [currentCodeUnitOffset](swift/utf8span/characteriterator/currentcodeunitoffset.md)

### Instance Methods

- [next()](swift/utf8span/characteriterator/next().md)
- [prefix()](swift/utf8span/characteriterator/prefix().md)
- [previous()](swift/utf8span/characteriterator/previous().md)
- [reset(roundingBackwardsFrom:)](swift/utf8span/characteriterator/reset(roundingbackwardsfrom:).md)
- [reset(roundingForwardsFrom:)](swift/utf8span/characteriterator/reset(roundingforwardsfrom:).md)
- [reset(toUnchecked:)](swift/utf8span/characteriterator/reset(tounchecked:).md)
- [skipBack()](swift/utf8span/characteriterator/skipback().md)
- [skipBack(by:)](swift/utf8span/characteriterator/skipback(by:).md)
- [skipForward()](swift/utf8span/characteriterator/skipforward().md)
- [skipForward(by:)](swift/utf8span/characteriterator/skipforward(by:).md)
- [suffix()](swift/utf8span/characteriterator/suffix().md)
