C/C++ Programlamada metin içindeki harf ve rakamları ayırma

KOUsoftware

Hectopat
Katılım
1 Nisan 2020
Mesajlar
159
Yer
İstanbul
Daha fazla  
Cinsiyet
Erkek
Meslek
Öğrenci
Şu şekilde yazdırabiliyorum. Lakin direkt S değişkeninin içeriğine nasıl ayarlayabilirim?

C:
#include <ctype.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>

void temizle (char *s){

    int  i,b=0,a=0;

    for( i=0;i<s[i]!='\0';i++){


        if( isdigit(s[i]) || isalpha(s[i]) ){

                s[i-b]=s[i]; a++;
        }

        else b++;
    }

    for(i=0;i<a;i++){
        printf("%c",s[i]);

        if( isdigit(s[i]) && isalpha(s[i+1]) || isalpha(s[i]) && isdigit(s[i+1]) )
            printf(" ");
    }


}

int main()
{
        char  str [128];
   

        printf("Sifrelenecek metni giriniz: ");
        fgets(str, sizeof(str), stdin);
 
        temizle(str);
   
    return 0;
}

Sayıları bir dizide toplamak için s değişkenindeki harf ve rakamların arasına ' ' koymak istiyorum. Yazdırabiliyorum ekrana lakin bellekte o şekilde tutulmasını nasıl sağlayabilirim? @Vavien.
 
Son düzenleme:
Çok saçma olacak ama mesela try catche soksan, kendi otomatik ayırır gibi.
String ifade INT ise foormat hatası vermezse sayıdır, format hatası vermezse harftir.

Try bloğunda sayıları bir diziye eklersin, catch bloğundada harfleri bir diziye eklersin.
 
Bunu dedin.

Bunu attım.

Hala gelmiş printf kullanıyorsun. Dipdibe yazıyorsun. a ve b diye şeyler kullanıyorsun.

Ben niye uğraşıyorum ki? Sen uğraş dur. Kolay gelsin.
Eyvallah. En başta da belirttiğim gibi ekrana yazdırabiliyorum lakin bellekte o şekilde tutamıyorum. Son örneği atmamdaki amaç noktalama işaretleri vs hiç bastırmayacağını göstermek içindi.
 
Son düzenleme:
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…