Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Printing a C string in reverse without using pointers?

Tags:

c

string

reverse

Is there a way to print a string of fixed size in reverse without using pointers?

#include<stdio.h>

main()
{
char buffer[10];

scanf("%s", buffer);

// need to print buffer in reverse without using pointers?? 

}
like image 378
mielacademy Avatar asked Nov 23 '25 09:11

mielacademy


2 Answers

A lovely K&R function to reverse your string in-place before printing it, perhaps?

#include <stdio.h>
#include <string.h>

void strrev(char *s) {
  int tmp, i, j;
  for (i = 0, j = strlen(s) - 1; i < j; i++, j--) {
    tmp = s[i];
    s[i] = s[j];
    s[j] = tmp;
  }
}

int main(int argc, const char *argv[]) {
  char buffer[10];
  scanf("%s", buffer);
  strrev(buffer);
  printf("%s\n", buffer);
  return 0;
}
like image 195
signine Avatar answered Nov 24 '25 23:11

signine


#include<stdio.h>

main()
{
  char buffer[10];

  int n = scanf("%s", buffer);

  // print the number of chars written to buffer
  if (n != EOF) {
    int len = strlen(buffer);
    if (len <= 10) {
      int i;
      for (i = len - 1; i >= 0; i--)
        printf("%c", buffer[i]);  
    } 
  }
}
like image 29
Key Avatar answered Nov 24 '25 22:11

Key



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!