0

I have to input 5 words and organize. In order to organize words, I have to get them into Array of String to compare. I succeed to get char[buffer] into String in_str but somehow in_str doesn't get into str[5]. is String str[i]=in_str; Wrong?? How can I put in_str to Array of String str??

void setup() {
  Serial.begin(9600); }

void loop() {
  int state = 1, len = 0 ,i=0, k=1;
  char buffer[128];
  String str[5];
  while (true) {
    if (state == 1) {
      Serial.print("Enter the ");
      Serial.print(k);
      Serial.print("th Word --> ");
      state = 2;
    } 
    while (Serial.available()) { 
      char data = Serial.read();
      if (data == '\n') {  
        buffer[len] = '\0';
        String in_str = buffer;
        String str[i]=in_str;
        Serial.println(in_str); 


        i=i+1;
        k=k+1;
        len = 0;
        if(i>4){state = 3; }
        else {state = 1;} 
        break;
      }
      buffer[len++] = data;
    }
  if(state==3){
    Serial.println("After Sorting");
   for (int i = 0; i < 4; i++) {
    for (int j = i + 1; j < 5; j++) {
      int compare = str[i].compareTo(str[j]);
      if (compare > 0) {         String temp = str[i];
        str[i] = str[j];
        str[j] = temp;
      }
    }
  }

   for (int i = 0; i < 5; i++) {
    Serial.println(String(i) + " : " + str[i]);
  }


    break;  
  }

  }
}
1

When you write String str[i]=in_str; that is wrong. You only write the type when you are declaring the variable, once.

When assigning, you need only write the variable name, not the type: str[i]=in_str;

  • I thought like hours to solve this problem but this was a simple mistake.. thanks for your help – TaeHyeong Kim Mar 29 '18 at 14:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.