---
title: "CFStringCompareWithOptions(_:_:_:_:)"
framework: corefoundation
role: symbol
role_heading: Function
path: "corefoundation/cfstringcomparewithoptions(_:_:_:_:)"
---

# CFStringCompareWithOptions(_:_:_:_:)

Compares a range of the characters in one string with that of another string.

## Declaration

```swift
func CFStringCompareWithOptions(_ theString1: CFString!, _ theString2: CFString!, _ rangeToCompare: CFRange, _ compareOptions: CFStringCompareFlags) -> CFComparisonResult
```

## Parameters

- `theString1`: The first string to use in the comparison.
- `theString2`: The second string to use in the comparison.
- `rangeToCompare`: The range of characters in theString1 to be used in the comparison to theString2. To use the whole string, pass the range CFRangeMake(0, CFStringGetLength(theString1)) or use doc://com.apple.corefoundation/documentation/CoreFoundation/CFStringCompare(_:_:_:). The specified range must not exceed the length of the string.
- `compareOptions`: Flags that select different types of comparisons, such as localized comparison, case-insensitive comparison, and non-literal comparison. If you want the default comparison behavior, pass 0. See doc://com.apple.corefoundation/documentation/CoreFoundation/string-comparison-flags for the available flags.

## Return Value

Return Value A CFComparisonResult value that indicates whether theString1 is equal to, less than, or greater than theString2.

## Discussion

Discussion You can affect how the comparison proceeds by specifying one or more option flags in compareOptions. If you want to compare one entire string with another string, use the CFStringCompare(_:_:_:) function.

## See Also

### Comparing Strings

- [CFStringCompare(_:_:_:)](corefoundation/cfstringcompare(_:_:_:).md)
- [CFStringCompareWithOptionsAndLocale(_:_:_:_:_:)](corefoundation/cfstringcomparewithoptionsandlocale(_:_:_:_:_:).md)
- [CFStringHasPrefix(_:_:)](corefoundation/cfstringhasprefix(_:_:).md)
- [CFStringHasSuffix(_:_:)](corefoundation/cfstringhassuffix(_:_:).md)
