#include <stdio.h>
#include <string.h>
int main()
{
char a[250];
char c1[1],c2[1];
int n,i;
printf("Give text: ");
gets(a);
printf("Give c1: ");
gets(c1);
printf("Give c2: ");
gets(c2);
n=strlen(a);
for(i=0;i<n;i++)
{
if(a[i]==c1)
{
a[i]=c2;
}
if(a[i]==c2)
{
a[i]=c1;
}
}
printf("%s",a);
return 0;
}
in einem Text begining ich brauche c1
mit c2
zu wechseln und umgekehrt, aber wenn ich das Programm starten, nachdem ich gebe, c1
, c2
nichts geschah. Wo liege ich falsch?Verwirrung C
Sie sollten nicht verwenden 'gets()', das unvermeidbare Risiko von Puffer hat überrannt, in C99 veraltet und von C11 entfernt. – MikeCAT
'gets (c1);' mit 'char c1 [1]' ist schlecht, da dies nur null Zeichen + Nullzeichen akzeptieren wird. 'a [i] = c2;' und 'a [i] = c1;' sieht komisch aus, weil es angibt, was aus dem vom Array konvertierten Zeiger konvertiert wird. – MikeCAT
Sie möchten lesen, wie C- "String" implementiert sind. Eine C- "string" definierte 'char c [1]' kann nichts mehr als die "emtpy-string": '" 'beinhalten. – alk