Não faz.
O terminador de string é um byte que contém todos os 0 bits.
O int não assinado é de dois ou quatro bytes (dependendo do seu ambiente), cada um contendo todos os 0 bits.
Os dois itens são armazenados em endereços diferentes. Seu código compilado executa operações adequadas para seqüências de caracteres no local anterior e operações adequadas para números binários não assinados no último. (A menos que você tenha um bug no seu código ou algum código perigosamente inteligente!)
Mas todos esses bytes parecem iguais à CPU. Os dados na memória (na maioria das arquiteturas de conjuntos de instruções comuns atualmente) não têm nenhum tipo associado a eles. Essa é uma abstração que existe apenas no código-fonte e significa algo apenas para o compilador.
Edição adicionada: como exemplo: é perfeitamente possível, até comum, executar aritmética nos bytes que compõem uma sequência. Se você tiver uma sequência de caracteres ASCII de 8 bits, poderá converter as letras entre maiúsculas e minúsculas adicionando ou subtraindo 32 (decimal). Ou, se você estiver traduzindo para outro código de caractere, poderá usar seus valores como índices em uma matriz cujos elementos fornecem a codificação de bits equivalente no outro código.
Para a CPU, os caracteres são realmente inteiros extra-curtos. (oito bits cada, em vez de 16, 32 ou 64.) Para nós, humanos, seus valores estão associados a caracteres legíveis, mas a CPU não faz ideia disso. Também não sabe nada sobre a convenção "C" de "byte nulo termina uma string" (e, como muitos observaram em outras respostas e comentários, há ambientes de programação nos quais essa convenção não é usada) .
Para ter certeza, existem algumas instruções no x86 / x64 que tendem a ser muito usadas com cadeias de caracteres - o prefixo REP, por exemplo - mas você pode usá-las também em uma matriz de números inteiros, se atingirem o resultado desejado.