---
name: "instr"
section: "3"
platform: "linux"
package: "alliance"
version: "5.1.1-3"
release: "Debian 10 (Buster)"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/instr"
---

# instr(3)

find an occurence of a string in a string, starting at a specified character.

## NAME

instr - find an occurence of a string in a string, starting at a specified character.

## SYNOPSYS

```
#include "mut.h"
char ∗instr(s, find, from)
char ∗s, ∗find, from;
```

## PARAMETERS

- *s*

  Pointer to the string to be searched for the pattern

- *find*

  Pointer to the string to be found, the pattern

- *from*

  Character to be searched backwards before searching for the pattern

## DESCRIPTION

**instr** searches the first occurence of the string *find* in the string *s*, starting its search at the last occurence of the *from* character in the string *s*.

If either *s* or *find* is **NULL**, the function returns **NULL**. If *from* is **(char)0**, the pattern is searched from the begining of *s*.\
 This quite exotic behaviour is useful to search the occurence of a name in a string resulting from a flatten, when only a terminal object name is to be taken into account.

## RETURN VALUES

**instr** return **NULL** either if the pattern *find* is not present  in the searched string *s*, or if one at least of these two string are **NULL**. If the pattern is found, a value different from **NULL** is returned.

## EXAMPLE

```
#include "mut.h"
/* check for the pattern 'ck' anywhere in the string */
#define contains_ck(name)	instr(name, "ck", ' ')
/* check for the pattern 'ck' in the signal name, not instance ones */
#define isclock(ptsig)		 instr(getsigname(ptsig), "ck", SEPAR)
```

## SEE ALSO

**mbk**(1), [**isvdd**(3)](/isvdd/3.md), [**isvss**(3)](/isvss/3.md).
