La domanda posta here è molto simile a quello con cui sto avendo un problema. La differenza è che devo passare un argomento a una funzione che rimuove gli spazi e restituisce la stringa risultante/array di caratteri. Ho ottenuto il codice di lavoro per rimuovere gli spazi, ma per qualche motivo sono rimasto con caratteri finali rimasti dalla matrice originale. Ho anche provato strncpy ma stavo avendo un sacco di errori.Funzione per rimuovere spazi da string/char array in C
Ecco quello che ho finora:
#include <stdio.h>
#include <string.h>
#define STRINGMAX 1000 /*Maximium input size is 1000 characters*/
char* deblank(char* input) /* deblank accepts a char[] argument and returns a char[] */
{
char *output=input;
for (int i = 0, j = 0; i<strlen(input); i++,j++) /* Evaluate each character in the input */
{
if (input[i]!=' ') /* If the character is not a space */
output[j]=input[i]; /* Copy that character to the output char[] */
else
j--; /* If it is a space then do not increment the output index (j), the next non-space will be entered at the current index */
}
return output; /* Return output char[]. Should have no spaces*/
}
int main(void) {
char input[STRINGMAX];
char terminate[] = "END\n"; /* Sentinal value to exit program */
printf("STRING DE-BLANKER\n");
printf("Please enter a string up to 1000 characters.\n> ");
fgets(input, STRINGMAX, stdin); /* Read up to 1000 characters from stdin */
while (strcmp(input, terminate) != 0) /* Check for que to exit! */
{
input[strlen(input) - 1] = '\0';
printf("You typed: \"%s\"\n",input); /* Prints the original input */
printf("Your new string is: %s\n", deblank(input)); /* Prints the output from deblank(input) should have no spaces... DE-BLANKED!!! */
printf("Please enter a string up to 1000 characters.\n> ");
fgets(input, STRINGMAX, stdin); /* Read up to another 1000 characters from stdin... will continue until 'END' is entered*/
}
}
Eventuali duplicati di [Come rimuovere tutti gli spazi e le schede da una stringa in linguaggio C?] (Http://stackoverflow.com/questions/1514660/how-to-remove-all-spaces-and -tabs-from-a-given-string-in-c-language) –